AIMA.Probability.Bayes.Exact.EliminationAsk.makeFactor C# (CSharp) Method

makeFactor() private method

private makeFactor ( RandomVariable var, AssignmentProposition e, BayesianNetwork bn ) : Factor
var RandomVariable
e AssignmentProposition
bn BayesianNetwork
return Factor
        private Factor makeFactor(RandomVariable var, AssignmentProposition[] e,
                                  BayesianNetwork bn)
        {

            Node n = bn.getNode(var);
            if (!(n is FiniteNode))
            {
                throw new IllegalArgumentException(
                    "Elimination-Ask only works with finite Nodes.");
            }
            FiniteNode fn = (FiniteNode) n;
            List<AssignmentProposition> evidence = new List<AssignmentProposition>();
            foreach (AssignmentProposition ap in e)
            {
                if (fn.getCPT().contains(ap.getTermVariable()))
                {
                    evidence.Add(ap);
                }
            }

            return fn.getCPT().getFactorFor(
                evidence.ToArray());
        }