public CPT(RandomVariable on, double[] values,
params RandomVariable [] conditionedOn) {
this.on = on;
if (null == conditionedOn) {
conditionedOn = new RandomVariable[0];
}
RandomVariable[] tableVars = new RandomVariable[conditionedOn.Length + 1];
for (int i = 0; i < conditionedOn.Length; i++) {
tableVars[i] = conditionedOn[i];
parents.add(conditionedOn[i]);
}
tableVars[conditionedOn.Length] = on;
table = new ProbabilityTable(values, tableVars);
onDomain.AddRange(((FiniteDomain) on.getDomain()).getPossibleValues());
checkEachRowTotalsOne();
}