use of com.sri.ai.praise.core.representation.interfacebased.factor.api.Factor in project aic-praise by aic-sri-international.
the class ExpressionFactorTest method testAdd1.
@Test
public void testAdd1() {
Theory theory = new CommonTheory();
Context context = new TrueContext(theory);
Expression a = DefaultSymbol.createSymbol("a");
ExpressionFactor aFactor = new DefaultExpressionFactor(a, context);
Expression b = DefaultSymbol.createSymbol("b");
ExpressionFactor bFactor = new DefaultExpressionFactor(b, context);
Factor abFactor = (ExpressionFactor) aFactor.add(bFactor);
assertEquals("a + b", abFactor.toString());
}
use of com.sri.ai.praise.core.representation.interfacebased.factor.api.Factor in project aic-praise by aic-sri-international.
the class ExpressionFactorTest method testGetVariables.
@Test
public void testGetVariables() {
Theory theory = new CompoundTheory(new EqualityTheory(false, true), new DifferenceArithmeticTheory(false, false), new LinearRealArithmeticTheory(false, false), new TupleTheory(), new PropositionalTheory());
Context context = new TrueContext(theory);
Expression expression = parse("{{ (on I in 1..10) I + J }}");
Factor factor = new DefaultExpressionFactor(expression, context);
List<? extends Variable> factorFreeVariables = factor.getVariables();
assertEquals(1, factorFreeVariables.size());
assertEquals("[J]", factorFreeVariables.toString());
}
use of com.sri.ai.praise.core.representation.interfacebased.factor.api.Factor in project aic-praise by aic-sri-international.
the class ExpressionFactorTest method testMultiply1.
@Test
public void testMultiply1() {
Theory theory = new CommonTheory();
Context context = new TrueContext(theory);
Expression a = DefaultSymbol.createSymbol("a");
ExpressionFactor aFactor = new DefaultExpressionFactor(a, context);
Expression b = DefaultSymbol.createSymbol("b");
ExpressionFactor bFactor = new DefaultExpressionFactor(b, context);
Factor abFactor = (ExpressionFactor) aFactor.multiply(bFactor);
assertEquals("a * b", abFactor.toString());
}
use of com.sri.ai.praise.core.representation.interfacebased.factor.api.Factor in project aic-praise by aic-sri-international.
the class ExpressionFactorTest method testMultiply2.
@Test
public void testMultiply2() {
Theory theory = new CommonTheory();
Context context = new TrueContext(theory);
Expression a = DefaultSymbol.createSymbol("a");
ExpressionFactor aFactor = new DefaultExpressionFactor(a, context);
Factor result = (ExpressionFactor) aFactor.multiply(IDENTITY_FACTOR);
assertEquals(aFactor, result);
}
use of com.sri.ai.praise.core.representation.interfacebased.factor.api.Factor in project aic-praise by aic-sri-international.
the class GradientAnytimeExactBP method function.
@Override
public Approximation<Factor> function(List<Approximation<Factor>> subsApproximations) {
Polytope product = getProductOfAllIncomingPolytopesAndFactorAtRoot(subsApproximations);
Collection<? extends Variable> freeVariables = product.getFreeVariables();
List<? extends Variable> variablesSummedOut = getBase().determinedVariablesToBeSummedOut(freeVariables);
Approximation<Factor> result = sumOut(variablesSummedOut, product);
return result;
}
Aggregations