// END-Factor // /** * Iterate over all the possible value assignments for the Random Variables * comprising this ProbabilityTable. * * @param pti * the ProbabilityTable Iterator to iterate. */ public void iterateOverTable(Factor.Iterator pti) { Map<RandomVariable, Object> possibleWorld = new LinkedHashMap<RandomVariable, Object>(); MixedRadixNumber mrn = new MixedRadixNumber(0, radices); do { foreach (RVInfo rvInfo in randomVarInfo.Values) { possibleWorld.put(rvInfo.getVariable(), rvInfo .getDomainValueAt(mrn.getCurrentNumeralValue(rvInfo . getRadixIdx ()))); } pti.iterate(possibleWorld, values[mrn.intValue()]); } while (mrn.increment()); }