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>(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,TDist>(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. |

