﻿ Infer.NET

## Constraints

This page lists the built-in methods for applying constraints. In these methods, you can often pass in random variables as arguments e.g. Variable<double> instead of double. For compactness, this is not shown in the syntax below.

These methods provide a convenient short alternative to using Variable.Constrain and passing in the constraint method, as described on this page

 Constraint Syntax Description True Variable.ConstrainTrue(bool v) Constrains the bool random variable v to be true. False Variable.ConstrainFalse(bool v) Constrains the bool random variable v to be false. Positivity Variable.ConstrainPositive(double v) Constrains the double random variable v to be strictly positive (i.e. such that v>0). Between limits Variable.ConstrainBetween(double x, double lowerBound, double upperBound) Constrains the double random variable x to be  between the specified limits, such that lowerBound <= x < upperBound. Equality Variable.ConstrainEqual(T a, T b) Constrains the random variables a and b  to have equal values.  The variables must have the same type T. Stochastic equality Variable.ConstrainEqualRandom(T a, TDist b) Constrains the random variable a to be equal to a sample from a distribution b. If a has type T, then b must be a distribution with domain type T.