public void testSparseDivideLogSpace () { Variable[] vars = new Variable[] { new Variable (2), new Variable (2) }; int[] szs = { 2, 2 }; int[] idxs1 = new int[] { 0, 1, 3 }; double[] vals1 = new double[]{ 2.0, 4.0, 8.0 }; int[] idxs2 = new int[] { 0, 3 }; double[] vals2 = new double [] { 0.5, 0.5 }; double[] vals3 = new double [] { 4.0, 0, 16.0 }; LogTableFactor ptl1 = LogTableFactor.makeFromMatrix (vars, new SparseMatrixn (szs, idxs1, vals1)); LogTableFactor ptl2 = LogTableFactor.makeFromMatrix (vars, new SparseMatrixn (szs, idxs2, vals2)); LogTableFactor ans = LogTableFactor.makeFromMatrix (vars, new SparseMatrixn (szs, idxs1, vals3)); ptl1.divideBy (ptl2); assertTrue ("Tast failed! Expected: "+ans+" Actual: "+ptl1, ans.almostEquals (ptl1)); }
public void testSparseDivideLogSpace () { Variable[] vars = new Variable[] { new Variable (2), new Variable (2) }; int[] szs = { 2, 2 }; int[] idxs1 = new int[] { 0, 1, 3 }; double[] vals1 = new double[]{ 2.0, 4.0, 8.0 }; int[] idxs2 = new int[] { 0, 3 }; double[] vals2 = new double [] { 0.5, 0.5 }; double[] vals3 = new double [] { 4.0, 0, 16.0 }; LogTableFactor ptl1 = LogTableFactor.makeFromMatrix (vars, new SparseMatrixn (szs, idxs1, vals1)); LogTableFactor ptl2 = LogTableFactor.makeFromMatrix (vars, new SparseMatrixn (szs, idxs2, vals2)); LogTableFactor ans = LogTableFactor.makeFromMatrix (vars, new SparseMatrixn (szs, idxs1, vals3)); ptl1.divideBy (ptl2); assertTrue ("Tast failed! Expected: "+ans+" Actual: "+ptl1, ans.almostEquals (ptl1)); }
public void testDivideByLogSpace () { Variable var = new Variable (4); double[] vals = new double[]{ 2.0, 4.0, 6.0, 8.0 }; double[] vals2 = new double [] { 0.5, 0.5, 0.5, 0.5 }; double[] vals3 = new double [] { 4, 8, 12, 16, }; TableFactor ans = new TableFactor (var, vals3); TableFactor ptl1 = new TableFactor (var, vals); TableFactor ptl2 = new TableFactor (var, vals2); ptl1.divideBy (ptl2); assertTrue (ans.almostEquals (ptl1)); TableFactor ptl3 = new TableFactor (var, vals); LogTableFactor ptl4 = LogTableFactor.makeFromValues (var, vals2); ptl3.divideBy (ptl4); assertTrue (ptl3.almostEquals (ans)); LogTableFactor ptl5 = LogTableFactor.makeFromValues (var, vals); TableFactor ptl6 = new TableFactor (var, vals2); ptl5.divideBy (ptl6); assertTrue (ptl5.almostEquals (ans)); LogTableFactor ptl7 = LogTableFactor.makeFromValues (var, vals); LogTableFactor ptl8 = LogTableFactor.makeFromValues (var, vals2); ptl7.divideBy (ptl8); assertTrue (ptl7.almostEquals (ans)); }
public void testDivideByLogSpace () { Variable var = new Variable (4); double[] vals = new double[]{ 2.0, 4.0, 6.0, 8.0 }; double[] vals2 = new double [] { 0.5, 0.5, 0.5, 0.5 }; double[] vals3 = new double [] { 4, 8, 12, 16, }; TableFactor ans = new TableFactor (var, vals3); TableFactor ptl1 = new TableFactor (var, vals); TableFactor ptl2 = new TableFactor (var, vals2); ptl1.divideBy (ptl2); assertTrue (ans.almostEquals (ptl1)); TableFactor ptl3 = new TableFactor (var, vals); LogTableFactor ptl4 = LogTableFactor.makeFromValues (var, vals2); ptl3.divideBy (ptl4); assertTrue (ptl3.almostEquals (ans)); LogTableFactor ptl5 = LogTableFactor.makeFromValues (var, vals); TableFactor ptl6 = new TableFactor (var, vals2); ptl5.divideBy (ptl6); assertTrue (ptl5.almostEquals (ans)); LogTableFactor ptl7 = LogTableFactor.makeFromValues (var, vals); LogTableFactor ptl8 = LogTableFactor.makeFromValues (var, vals2); ptl7.divideBy (ptl8); assertTrue (ptl7.almostEquals (ans)); }