Integer and enum factors
This page lists the built-in methods and operators for creating random variables of type int and of type enum. For both static methods and operators, you can often pass in random variables as arguments e.g. Variable<int>
instead of int. 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.
Distribution Factors
A distribution factor creates a random variable from a parameterised distribution.
Distribution | Syntax | Description |
---|---|---|
Discrete | Variable.Discrete(double[] probs) Variable.Discrete(Vector probs) |
Creates an int random variable from supplied array or vector of probabilities (which must add up to 1). The variable can take values between 0 and N-1 where N is the length of the array/vector. |
Discrete | Variable.DiscreteFromLogProbs(double[] logProbs) |
Creates an int random variable from supplied array or vector of log probabilities. Equivalent to Variable.Discrete(Variable.Softmax(logProbs)) . |
Discrete | Variable.EnumDiscrete<TEnum>(double[] probs) Variable.EnumDiscrete<TEnum>(Vector probs) |
Creates an int random variable which can take values from 0 to size-1 with equal probability. |
Discrete enum | Variable.EnumDiscrete<TEnum>(double[] probs) Variable.EnumDiscrete<TEnum>(Vector probs) |
Creates an enum random variable where the probability of each enum value is given by the specified array or vector. TEnum specifies the enum type. |
Discrete enum | Variable.EnumUniform<TEnum>() |
Creates an enum random variable with equal probability of taking each possible value of the enumeration. TEnum specifies the enum type. |
Binomial | Variable.Binomial(int trialCount, double probSuccess) |
Creates an int random variable which has a Binomial distribution with the specified probability of success per trial and number of trials |
Poisson | Variable.Poisson(double mean) |
Creates an int random variable which has a Poisson distribution with the specified mean. |
Arihmetic Operations
Arithmetic operations are supported via operator overloads or static methods.
Operation | Syntax | Description |
---|---|---|
Plus | a + b | Creates an int random variable equal to the sum of a and b |
Multiply | a * b | Creates an intrandom variable equal to the product of a and b |
CountTrue | Variable.CountTrue(bool[] array) |
Creates an int random variable which counts up the number of elements in the array that are true. |
Conversion Operations
Operation | Syntax | Description |
---|---|---|
EnumToInt | Variable.EnumToInt(TEnum v) |
Creates an int random variable corresponding to an enum random variable. The returned variable can be used as the condition for a Switch or Case block. |