public Assignment (Variable var, double outcome) { this (); addRow (new Variable[] { var }, new double[] { outcome }); }
/** * Creates an assignemnt for the given variables. */ public Assignment (Variable[] vars, int[] outcomes) { var2idx = new TObjectIntHashMap (vars.length); values = new ArrayList (); addRow (vars, outcomes); }
public void addRow (Variable[] vars, Object[] values) { checkAssignmentsMatch (vars); addRow (values); }
/** * Creates an assignemnt for the given variables. */ public Assignment (Variable[] vars, int[] outcomes) { var2idx = new TObjectIntHashMap (vars.length); values = new ArrayList (); addRow (vars, outcomes); }
/** * Creates an assignemnt for the given variables. */ public Assignment (Variable[] vars, double[] outcomes) { var2idx = new TObjectIntHashMap (vars.length); values = new ArrayList (); addRow (vars, outcomes); }
public void addRow (Variable[] vars, Object[] values) { checkAssignmentsMatch (vars); addRow (values); }
public void testAsTable () { Assignment assn = new Assignment (); assn.addRow (vars, new int[] { 1, 1 }); assn.addRow (vars, new int[] { 1, 0 }); assn.addRow (vars, new int[] { 1, 0 }); AbstractTableFactor tbl = assn.asTable (); TableFactor exp = new TableFactor (vars, new double[] { 0, 0, 2, 1 }); assertTrue (exp.almostEquals (tbl)); }
public Assignment subAssn (int start, int end) { Assignment other = new Assignment (); for (int ri = start; ri < end; ri++) { other.addRow (getRow (ri)); } return other; }
public Assignment subAssn (int start, int end) { Assignment other = new Assignment (); for (int ri = start; ri < end; ri++) { other.addRow (getRow (ri)); } return other; }
public Assignment getRow (int ridx) { Assignment assn = new Assignment (); assn.var2idx = (TObjectIntHashMap) this.var2idx.clone (); assn.vars = new UnmodifiableVarSet (vars); assn.addRow ((Object[]) values.get (ridx)); return assn; }
public Assignment getRow (int ridx) { Assignment assn = new Assignment (); assn.var2idx = (TObjectIntHashMap) this.var2idx.clone (); assn.vars = new UnmodifiableVarSet (vars); assn.addRow ((Object[]) values.get (ridx)); return assn; }
public void testScale () { Assignment assn = new Assignment (vars, new int[] { 1, 0 }); assn.addRow (vars, new int[] { 1, 0 }); assn.addRow (vars, new int[] { 1, 1 }); Assignment assn2 = new Assignment (vars, new int[] { 1, 0 }); assn.normalize (); assertEquals (0.666666, assn.value (assn2), 1e-5); }
public void testScale () { Assignment assn = new Assignment (vars, new int[] { 1, 0 }); assn.addRow (vars, new int[] { 1, 0 }); assn.addRow (vars, new int[] { 1, 1 }); Assignment assn2 = new Assignment (vars, new int[] { 1, 0 }); assn.normalize (); assertEquals (0.666666, assn.value (assn2), 1e-5); }
public void testScaleMarginalize () { Assignment assn = new Assignment (vars, new int[] { 1, 0 }); assn.addRow (vars, new int[] { 1, 0 }); assn.addRow (vars, new int[] { 1, 1 }); assn.normalize (); Factor mrg = assn.marginalize (vars[1]); Assignment assn2 = new Assignment (vars[1], 0); assertEquals (0.666666, mrg.value (assn2), 1e-5); }
public Assignment sample (Randoms r) { int ri = r.nextInt (numRows ()); Object[] vals = (Object[]) values.get (ri); Assignment assn = new Assignment (); Variable[] varr = (Variable[]) vars.toArray (new Variable [numVariables ()]); assn.addRow (varr, vals); return assn; }
public void testMarginalize () { Assignment assn = new Assignment (); assn.addRow (vars, new int[] { 1, 1 }); assn.addRow (vars, new int[] { 1, 0 }); Assignment assn2 = (Assignment) assn.marginalize (vars[0]); assertEquals (2, assn2.numRows ()); assertEquals (1, assn2.size ()); assertEquals (vars[0], assn2.getVariable (0)); assertEquals (1, assn.get (0, vars[0])); assertEquals (1, assn.get (1, vars[0])); }
public void testMarginalizeOut () { Assignment assn = new Assignment (); assn.addRow (vars, new int[] { 1, 1 }); assn.addRow (vars, new int[] { 1, 0 }); Assignment assn2 = (Assignment) assn.marginalizeOut (vars[1]); assertEquals (2, assn2.numRows ()); assertEquals (1, assn2.size ()); assertEquals (vars[0], assn2.getVariable (0)); assertEquals (1, assn.get (0, vars[0])); assertEquals (1, assn.get (1, vars[0])); }
public void testMarginalizeOut () { Assignment assn = new Assignment (); assn.addRow (vars, new int[] { 1, 1 }); assn.addRow (vars, new int[] { 1, 0 }); Assignment assn2 = (Assignment) assn.marginalizeOut (vars[1]); assertEquals (2, assn2.numRows ()); assertEquals (1, assn2.size ()); assertEquals (vars[0], assn2.getVariable (0)); assertEquals (1, assn.get (0, vars[0])); assertEquals (1, assn.get (1, vars[0])); }
public void testSetValueDup () { Assignment assn = new Assignment (); assn.addRow (vars, new int[] { 1, 1 }); Assignment dup = (Assignment) assn.duplicate (); dup.setValue (vars[0], 0); assertEquals (1, dup.numRows ()); assertEquals (0, dup.get (0, vars[0])); assertEquals (1, dup.get (0, vars[1])); }
public void testSetValueExpand () { Assignment assn = new Assignment (); assn.addRow (vars, new int[] { 0, 0 }); Variable v3 = new Variable (2); assn.setValue (v3, 1); assertEquals (3, assn.size ()); assertEquals (0, assn.get (vars[0])); assertEquals (0, assn.get (vars[1])); assertEquals (1, assn.get (v3)); }