public Factor multiply (Factor dist) { Factor dup = duplicate (); dup.multiplyBy (dist); return dup; }
/** * Returns the elementwise product of this potential and * another one. */ public Factor multiply (Factor dist) { Factor result = duplicate (); result.multiplyBy (dist); return result; }
public Factor multiply (Factor other) { Factor result = new TableFactor (this); result.multiplyBy (other); return result; } }
/** * Returns the elementwise product of this potential and * another one. */ public Factor multiply (Factor dist) { Factor result = duplicate (); result.multiplyBy (dist); return result; }
public Factor multiply (Factor dist) { Factor dup = duplicate (); dup.multiplyBy (dist); return dup; }
public Factor multiply (Factor other) { Factor result = new TableFactor (this); result.multiplyBy (other); return result; }
public Factor multiply (Factor other) { Factor result = new TableFactor (this); result.multiplyBy (other); return result; } }
public Factor multiply (Factor other) { Factor result = new TableFactor (this); result.multiplyBy (other); return result; }
/** * Returns the elementwise product of this potential and * another one. */ public Factor multiply (Factor dist) { Factor result = duplicate (); result.multiplyBy (dist); return result; }
public Factor multiply (Factor other) { Factor result = new TableFactor (this); result.multiplyBy (other); return result; } }
public Factor multiply (Factor dist) { Factor dup = duplicate (); dup.multiplyBy (dist); return dup; }
public Factor multiply (Factor other) { Factor result = new TableFactor (this); result.multiplyBy (other); return result; }
private boolean willBeNaN2 (Factor product, Factor otherMsg) { Factor p2 = product.duplicate (); p2.multiplyBy (otherMsg); return p2.isNaN (); }
private boolean willBeNaN2 (Factor product, Factor otherMsg) { Factor p2 = product.duplicate (); p2.multiplyBy (otherMsg); return p2.isNaN (); }
private boolean willBeNaN2 (Factor product, Factor otherMsg) { Factor p2 = product.duplicate (); p2.multiplyBy (otherMsg); return p2.isNaN (); }
Factor msgProduct (RegionEdge edge) { Factor product = new LogTableFactor (edge.from.vars); for (Iterator it = edge.neighboringParents.iterator (); it.hasNext ();) { RegionEdge otherEdge = (RegionEdge) it.next (); Factor otherMsg = oldMessages.getMessage (otherEdge.from, otherEdge.to); product.multiplyBy (otherMsg); } for (Iterator it = edge.loopingMessages.iterator (); it.hasNext ();) { RegionEdge otherEdge = (RegionEdge) it.next (); Factor otherMsg = newMessages.getMessage (otherEdge.from, otherEdge.to); product.divideBy (otherMsg); } return product; } }
private Factor lookupMarginal (VarSet vs, List factors) { Factor marginal = Factors.multiplyAll (factors); for (Iterator fit = factors.iterator (); fit.hasNext ();) { Factor factor = (Factor) fit.next (); for (java.util.Iterator it = vs.iterator (); it.hasNext ();) { Variable var = (Variable) it.next (); Factor msg = messages.get (var, factor); if (msg != null) { // if the inferencer was stopped early, there may be no message marginal.multiplyBy (msg); } } } marginal.normalize (); return marginal; }
private Factor lookupMarginal (VarSet vs, List factors) { Factor marginal = Factors.multiplyAll (factors); for (Iterator fit = factors.iterator (); fit.hasNext ();) { Factor factor = (Factor) fit.next (); for (java.util.Iterator it = vs.iterator (); it.hasNext ();) { Variable var = (Variable) it.next (); Factor msg = messages.get (var, factor); if (msg != null) { // if the inferencer was stopped early, there may be no message marginal.multiplyBy (msg); } } } marginal.normalize (); return marginal; }
public void advance () { vidx++; Variable var = graph.get (vidx); ptl = new TableFactor (var); for (Iterator it = cliquesByVar[vidx].iterator (); it.hasNext();) { ACRF.UnrolledVarSet clique = (ACRF.UnrolledVarSet) it.next (); Factor cliquePtl = graph.factorOf (clique); if (cliquePtl == null) throw new IllegalStateException ("Could not find potential for clique "+clique); VarSet vs = new HashVarSet (cliquePtl.varSet ()); vs.remove (var); Assignment nbrAssn = (Assignment) observed.marginalize (vs); Factor slice = cliquePtl.slice (nbrAssn); ptl.multiplyBy (slice); } }
public Factor msgProduct (Factor product, int idx, int excludeMsgFrom) { if (product == null) { product = createEmptyFactorForVar (idx); } for (MessageArray.ToMsgsIterator it = messages.toMessagesIterator (idx); it.hasNext ();) { it.next (); int j = it.currentFromIdx (); Factor msg = it.currentMessage (); if (j != excludeMsgFrom) { product.multiplyBy (msg); // assert product.varSet ().size () <= 2; } } return product; }