public static int[] toSizesArray (Variable[] vars) { int[] szs = new int [vars.length]; for (int i = 0; i < vars.length; i++) { szs[i] = vars[i].getNumOutcomes (); } return szs; }
public int weight () { int tot = 1; for (int i = 0; i < vertsList.size(); i++) { Variable var = (Variable) vertsList.get (i); tot *= var.getNumOutcomes (); } return tot; }
public BoltzmannUnaryFactor (Variable var, double theta) { super (var, theta2values (theta)); this.theta = theta; this.var = var; if (var.getNumOutcomes () != 2) { throw new IllegalArgumentException ("Discrete variable "+var+" in BoltzmannUnary must be binary."); } }
public BoltzmannUnaryFactor (Variable var, double theta) { super (var, theta2values (theta)); this.theta = theta; this.var = var; if (var.getNumOutcomes () != 2) { throw new IllegalArgumentException ("Discrete variable "+var+" in BoltzmannUnary must be binary."); } }
public double getLogNumAssignments () { double total = 0; for (int i = 0; i < numVariables (); i++) { Variable var = get(i); total += Math.log (var.getNumOutcomes ()); } return total; }
public double getLogNumAssignments () { double total = 0; for (int i = 0; i < numVariables (); i++) { Variable var = get(i); total += Math.log (var.getNumOutcomes ()); } return total; }
private static TableFactor randomNodePotential(Random r, Variable v) { int max = v.getNumOutcomes(); Matrix phi = new Matrixn(new int[]{max}); for (int i = 0; i < v.getNumOutcomes(); i++) { phi.setSingleValue(i, rescale(r.nextDouble())); } return new TableFactor (new Variable[]{v}, phi); }
private static void writeVariables (FactorGraph fg, Writer w) throws IOException { for (int vi = 0; vi < fg.numVariables(); vi++) { Variable var = fg.getVariable (vi); int nOuts = var.getNumOutcomes (); String outStr = nOuts == Variable.CONTINUOUS ? "continuous" : Integer.toString(nOuts); w.write("VAR " + var.getLabel() + " : " + outStr + "\n"); } }
protected Factor slice_onevar (Variable var, Assignment observed) { Assignment assn = (Assignment) observed.duplicate (); double[] vals = new double [var.getNumOutcomes ()]; for (int i = 0; i < var.getNumOutcomes (); i++) { assn.setValue (var, i); vals[i] = logValue (assn); } return LogTableFactor.makeFromLogValues (var, vals); }
protected Factor slice_onevar (Variable var, Assignment observed) { Assignment assn = (Assignment) observed.duplicate (); double[] vals = new double [var.getNumOutcomes ()]; for (int i = 0; i < var.getNumOutcomes (); i++) { assn.setValue (var, i); vals[i] = logValue (assn); } return LogTableFactor.makeFromLogValues (var, vals); }
protected Factor slice_onevar (Variable var, Assignment observed) { Assignment assn = (Assignment) observed.duplicate (); double[] vals = new double [var.getNumOutcomes ()]; for (int i = 0; i < var.getNumOutcomes (); i++) { assn.setValue (var, i); vals[i] = logValue (assn); } return LogTableFactor.makeFromLogValues (var, vals); }
public static int[] computeSizes (Factor result) { int nv = result.varSet ().size(); int[] szs = new int [nv]; for (int i = 0; i < nv; i++) { Variable var = result.getVariable (i); szs[i] = var.getNumOutcomes (); } return szs; }
public static int[] computeSizes (Factor result) { int nv = result.varSet ().size(); int[] szs = new int [nv]; for (int i = 0; i < nv; i++) { Variable var = result.getVariable (i); szs[i] = var.getNumOutcomes (); } return szs; }
private int[] sizesFromVarSet (VarSet xs) { int[] szs = new int [xs.size ()]; for (int i = 0; i < xs.size (); i++) { szs[i] = xs.get (i).getNumOutcomes (); } return szs; }
private int[] sizesFromVarSet (VarSet xs) { int[] szs = new int [xs.size ()]; for (int i = 0; i < xs.size (); i++) { szs[i] = xs.get (i).getNumOutcomes (); } return szs; }
private int[] sizesFromVarSet (VarSet xs) { int[] szs = new int [xs.size ()]; for (int i = 0; i < xs.size (); i++) { szs[i] = xs.get (i).getNumOutcomes (); } return szs; }
public int[] varDimensions () { int[] dims = new int[size()]; for (int i = 0; i < size(); i++) { dims [i] = get(i).getNumOutcomes(); } return dims; }
public static double localMagnetization (Inferencer inferencer, Variable var) { if (var.getNumOutcomes () != 2) throw new IllegalArgumentException (); Factor marg = inferencer.lookupMarginal (var); AssignmentIterator it = marg.assignmentIterator (); double v1 = marg.value (it); it.advance (); double v2 = marg.value (it); return v1 - v2; }
public int singleIndex (int row) { // these could be cached int[] szs = new int [numVariables ()]; for (int i = 0; i < numVariables (); i++) { Variable var = (Variable) vars.get (i); szs[i] = var.getNumOutcomes (); } int[] idxs = toIntArray (row); return Matrixn.singleIndex (szs, idxs); }
public int singleIndex (int row) { // these could be cached int[] szs = new int [numVariables ()]; for (int i = 0; i < numVariables (); i++) { Variable var = (Variable) vars.get (i); szs[i] = var.getNumOutcomes (); } int[] idxs = toIntArray (row); return Matrixn.singleIndex (szs, idxs); }