delta_n_i[i] = 1.0;
map<size_t, Factor> newFacs;
- // For all factors that contain n
- for( size_t I = 0; I < nrFactors(); I++ )
- if( factor(I).vars().contains( n ) )
- // Multiply it with a delta function
- newFacs[I] = factor(I) * delta_n_i;
+ size_t n_index = findVar(n);
+ foreach( const BipartiteGraph::Neighbor &I, nbV(n_index) )
+ newFacs[I] = factor(I) * delta_n_i;
setFactors( newFacs, backup );
return;
}
map<size_t, Factor> newFacs;
- for( size_t I = 0; I < nrFactors(); I++ )
- if( factor(I).vars().contains( n ) ) {
- newFacs[I] = factor(I) * mask_n;
- }
+ size_t n_index = findVar(n);
+ foreach( const BipartiteGraph::Neighbor &I, nbV(n_index) )
+ newFacs[I] = factor(I) * mask_n;
setFactors( newFacs, backup );
}