Boolean and Comparison Operations

This page lists the built-in methods and operators for applying Boolean operations like AND and OR, or for performing comparisons like greater-than or equality. For both static methods and operators, 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<T>.Factor and passing in the factor method, as described on this page.

Boolean Operations

Boolean operations are supported via operator overloads or static methods.

Operation
Syntax
Description
And
a & b
Creates a boolean random variable which is true if both a and b are true.
Or
a | b
Creates a boolean random variable which is true if either a or b are true.
Not
!a
Creates a boolean random variable which is true if a is false.
AllTrue Variable.AllTrue(bool[] array)
Variable.AllTrue(IList<bool> array)
Creates a boolean random variable which is true if all the elements of array are true. In other words, this is a N-valued AND. Where the array has length two, & should be used instead.

Comparison Operations

Comparison operations are supported via operator overloads or static methods.

Operation
Syntax
Description
Equals
a==b
Creates a boolean random variable which is true if a and b are equal.
Not equals
a!=b
Creates a boolean random variable which is true if a and b are not equal.
Greater than / less than
a>b, a<b
a>=b, a<=b
Note: a and b must be both double or both int
Creates a boolean random variable which is true if a is greater than/less than/greater than or equal to/less than or equal to b.
IsPositive
Variable.IsPositive(double x)
Creates a boolean random variable which is true if x is positive.
IsBetween
Variable.IsBetween(double x, double lowerBound, double upperBound)
Creates a boolean random variable which is true if lowerBound <= x < upperBound.

Last modified at 8/24/2009 2:13 PM  by Tom Minka 
©2009 Microsoft Corporation. All rights reserved.  Terms of Use | Trademarks | Privacy Statement