public Factor duplicate () { return new NormalFactor (vars, mean, variance); }
public Factor duplicate () { return new NormalFactor (vars, mean, variance); }
public Factor duplicate () { return new NormalFactor (vars, mean, variance); }
public void testSample () { Variable v1 = new Variable (Variable.CONTINUOUS); Variable v2 = new Variable (Variable.CONTINUOUS); Randoms r = new Randoms (2343); Vector mu = new DenseVector (new double[] { 1.0, 2.0 }); Matrix var = new DenseMatrix (new double[][] {{ 0.5, 2.0 }, { 0, 1 }}); // Matrix var = new DenseMatrix (new double[][] {{ 0.5, 2.0 }, { 2.0, 0.75 }}); VarSet vars = new HashVarSet (new Variable[] { v1, v2 }); Factor f = new NormalFactor (vars, mu, var); TDoubleArrayList v1lst = new TDoubleArrayList (); TDoubleArrayList v2lst = new TDoubleArrayList (); for (int i = 0; i < 100000; i++) { Assignment assn = f.sample (r); v1lst.add (assn.getDouble (v1)); v2lst.add (assn.getDouble (v2)); } checkMeanStd (v1lst, 1.0, Math.sqrt (1/0.5)); checkMeanStd (v2lst, 2.0, Math.sqrt (1/0.75)); }
public void testSample () { Variable v1 = new Variable (Variable.CONTINUOUS); Variable v2 = new Variable (Variable.CONTINUOUS); Randoms r = new Randoms (2343); Vector mu = new DenseVector (new double[] { 1.0, 2.0 }); Matrix var = new DenseMatrix (new double[][] {{ 0.5, 2.0 }, { 0, 1 }}); // Matrix var = new DenseMatrix (new double[][] {{ 0.5, 2.0 }, { 2.0, 0.75 }}); VarSet vars = new HashVarSet (new Variable[] { v1, v2 }); Factor f = new NormalFactor (vars, mu, var); TDoubleArrayList v1lst = new TDoubleArrayList (); TDoubleArrayList v2lst = new TDoubleArrayList (); for (int i = 0; i < 100000; i++) { Assignment assn = f.sample (r); v1lst.add (assn.getDouble (v1)); v2lst.add (assn.getDouble (v2)); } checkMeanStd (v1lst, 1.0, Math.sqrt (1/0.5)); checkMeanStd (v2lst, 2.0, Math.sqrt (1/0.75)); }