finMath lib documentation
net.finmath.stochastic

## Class Scalar

• All Implemented Interfaces:
Serializable, RandomVariableInterface

public class Scalar
extends Object
implements RandomVariableInterface
A scalar value implementing the RandomVariableInterface.
Version:
1.0
Author:
Christian Fries
Serialized Form
• ### Constructor Summary

Constructors
Constructor and Description
Scalar(double value)
• ### Method Summary

All Methods
Modifier and Type Method and Description
RandomVariableInterface abs()
Applies x → Math.abs(x), i.e. x → |x| to this random variable.
RandomVariableInterface accrue(RandomVariableInterface rate, double periodLength)
Applies x → x * (1.0 + rate * periodLength) to this random variable.
RandomVariableInterface add(double value)
Applies x → x + value to this random variable.
RandomVariableInterface add(RandomVariableInterface randomVariable)
Applies x → x+randomVariable to this random variable.
RandomVariableInterface addProduct(RandomVariableInterface factor1, double factor2)
Applies x → x + factor1 * factor2
RandomVariableInterface addProduct(RandomVariableInterface factor1, RandomVariableInterface factor2)
Applies x → x + factor1 * factor2
RandomVariableInterface addRatio(RandomVariableInterface numerator, RandomVariableInterface denominator)
Applies x → x + numerator / denominator
RandomVariableInterface apply(DoubleBinaryOperator operator, RandomVariableInterface argument)
Applies x → operator(x,y) to this random variable, where x is this random variable and y is a given random variable.
RandomVariableInterface apply(DoubleTernaryOperator operator, RandomVariableInterface argument1, RandomVariableInterface argument2)
Applies x → operator(x,y,z) to this random variable, where x is this random variable and y and z are given random variable.
RandomVariableInterface apply(DoubleUnaryOperator operator)
Applies x → operator(x) to this random variable.
RandomVariableInterface average()
Returns a random variable which is deterministic and corresponds the expectation of this random variable.
RandomVariableInterface barrier(RandomVariableInterface trigger, RandomVariableInterface valueIfTriggerNonNegative, double valueIfTriggerNegative)
Applies x → (trigger ≥ 0 ?
RandomVariableInterface barrier(RandomVariableInterface trigger, RandomVariableInterface valueIfTriggerNonNegative, RandomVariableInterface valueIfTriggerNegative)
Applies x → (trigger ≥ 0 ?
RandomVariableInterface bus(RandomVariableInterface randomVariable)
Applies x → randomVariable-x to this random variable.
RandomVariableInterface cache()
Return a cacheable version of this object (often a self-reference).
RandomVariableInterface cap(double cap)
Applies x → min(x,cap) to this random variable.
RandomVariableInterface cap(RandomVariableInterface cap)
Applies x → min(x,cap) to this random variable.
RandomVariableInterface choose(RandomVariableInterface valueIfTriggerNonNegative, RandomVariableInterface valueIfTriggerNegative)
Applies x → (x ≥ 0 ?
RandomVariableInterface cos()
Applies x → cos(x) to this random variable.
RandomVariableInterface discount(RandomVariableInterface rate, double periodLength)
Applies x → x / (1.0 + rate * periodLength) to this random variable.
RandomVariableInterface div(double value)
Applies x → x / value to this random variable.
RandomVariableInterface div(RandomVariableInterface randomVariable)
Applies x → x/randomVariable to this random variable.
Double doubleValue()
Returns the double value if isDeterministic() is true. otherwise throws an UnsupportedOperationException.
boolean equals(RandomVariableInterface randomVariable)
Compare this random variable with a given one
RandomVariableInterface exp()
Applies x → exp(x) to this random variable.
RandomVariableInterface floor(double floor)
Applies x → max(x,floor) to this random variable.
RandomVariableInterface floor(RandomVariableInterface floor)
Applies x → max(x,floor) to this random variable.
double get(int pathOrState)
Evaluate at a given path or state.
double getAverage()
Returns the expectation of this random variable.
double getAverage(RandomVariableInterface probabilities)
Returns the expectation of this random variable for a given probability measure (weight).
double getFiltrationTime()
Returns the filtration time.
double[] getHistogram(double[] intervalPoints)
Generates a Histogram based on the realizations stored in this random variable.
double[][] getHistogram(int numberOfPoints, double standardDeviations)
Generates a histogram based on the realizations stored in this random variable using interval points calculated from the arguments, see also RandomVariableInterface.getHistogram(double[]).
double getMax()
Returns the maximum value attained by this random variable.
double getMin()
Returns the minimum value attained by this random variable.
IntToDoubleFunction getOperator()
Returns the operator path → this.get(path) corresponding to this random variable.
double getQuantile(double quantile)
Returns the quantile value for this given random variable, i.e., the value x such that P(this < x) = quantile, where P denotes the probability measure.
double getQuantile(double quantile, RandomVariableInterface probabilities)
Returns the quantile value for this given random variable, i.e., the value x such that P(this < x) = quantile, where P denotes the probability measure.
double getQuantileExpectation(double quantileStart, double quantileEnd)
Returns the expectation over a quantile for this given random variable.
double[] getRealizations()
Returns a vector representing the realization of this random variable.
DoubleStream getRealizationsStream()
Returns a stream of doubles corresponding to the realizations of this random variable.
double getSampleVariance()
Returns the sample variance of this random variable, i.e., V * size()/(size()-1) where V = getVariance().
double getStandardDeviation()
Returns the standard deviation of this random variable, i.e., sqrt(V) where V = ((X-m)^2).getAverage() and X = this and m = X.getAverage().
double getStandardDeviation(RandomVariableInterface probabilities)
Returns the standard deviation of this random variable, i.e., sqrt(V) where V = ((X-m)^2).getAverage(probabilities) and X = this and m = X.getAverage(probabilities).
double getStandardError()
Returns the standard error (discretization error) of this random variable.
double getStandardError(RandomVariableInterface probabilities)
Returns the standard error (discretization error) of this random variable.
int getTypePriority()
Returns the type priority.
double getVariance()
Returns the variance of this random variable, i.e., V where V = ((X-m)^2).getAverage() and X = this and m = X.getAverage().
double getVariance(RandomVariableInterface probabilities)
Returns the variance of this random variable, i.e., V where V = ((X-m)^2).getAverage(probabilities) and X = this and m = X.getAverage(probabilities).
RandomVariableInterface invert()
Applies x → 1/x to this random variable.
boolean isDeterministic()
Check if this random variable is deterministic in the sense that it is represented by a single double value.
RandomVariableInterface isNaN()
Applies x → (Double.isNaN(x) ?
RandomVariableInterface log()
Applies x → log(x) to this random variable.
RandomVariableInterface mult(double value)
Applies x → x * value to this random variable.
RandomVariableInterface mult(RandomVariableInterface randomVariable)
Applies x → x*randomVariable to this random variable.
RandomVariableInterface pow(double exponent)
Applies x → pow(x,exponent) to this random variable.
RandomVariableInterface sin()
Applies x → sin(x) to this random variable.
int size()
Returns the number of paths or states.
RandomVariableInterface sqrt()
Applies x → sqrt(x) to this random variable.
RandomVariableInterface squared()
Applies x → x * x to this random variable.
RandomVariableInterface sub(double value)
Applies x → x - value to this random variable.
RandomVariableInterface sub(RandomVariableInterface randomVariable)
Applies x → x-randomVariable to this random variable.
RandomVariableInterface subRatio(RandomVariableInterface numerator, RandomVariableInterface denominator)
Applies x → x - numerator / denominator
RandomVariableInterface vid(RandomVariableInterface randomVariable)
Applies x → randomVariable/x to this random variable.
• ### Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
• ### Methods inherited from interface net.finmath.stochastic.RandomVariableInterface

addSumProduct, getConditionalExpectation, getValues
• ### Constructor Detail

• #### Scalar

public Scalar(double value)
• ### Method Detail

• #### equals

public boolean equals(RandomVariableInterface randomVariable)
Description copied from interface: RandomVariableInterface
Compare this random variable with a given one
Specified by:
equals in interface RandomVariableInterface
Parameters:
randomVariable - Random variable to compare with.
Returns:
True if this random variable and the given one are equal, otherwise false
• #### getFiltrationTime

public double getFiltrationTime()
Description copied from interface: RandomVariableInterface
Returns the filtration time.
Specified by:
getFiltrationTime in interface RandomVariableInterface
Returns:
The filtration time.
• #### getTypePriority

public int getTypePriority()
Description copied from interface: RandomVariableInterface
Returns the type priority.
Specified by:
getTypePriority in interface RandomVariableInterface
Returns:
The type priority.
ssrn abstract 3246127
• #### get

public double get(int pathOrState)
Description copied from interface: RandomVariableInterface
Evaluate at a given path or state.
Specified by:
get in interface RandomVariableInterface
Parameters:
pathOrState - Index of the path or state.
Returns:
Value of this random variable at the given path or state.
• #### size

public int size()
Description copied from interface: RandomVariableInterface
Returns the number of paths or states.
Specified by:
size in interface RandomVariableInterface
Returns:
Number of paths or states.
• #### isDeterministic

public boolean isDeterministic()
Description copied from interface: RandomVariableInterface
Check if this random variable is deterministic in the sense that it is represented by a single double value. Note that the methods returns false, if the random variable is represented by a vector where each element has the same value.
Specified by:
isDeterministic in interface RandomVariableInterface
Returns:
True if this random variable is deterministic.
• #### getRealizations

public double[] getRealizations()
Description copied from interface: RandomVariableInterface
Returns a vector representing the realization of this random variable. This method is merely useful for analysis. Its interpretation depends on the context (Monte-Carlo or lattice). The method does not expose an internal data model.
Specified by:
getRealizations in interface RandomVariableInterface
Returns:
Vector of realizations of this random variable.
• #### doubleValue

public Double doubleValue()
Description copied from interface: RandomVariableInterface
Returns the double value if isDeterministic() is true. otherwise throws an UnsupportedOperationException.
Specified by:
doubleValue in interface RandomVariableInterface
Returns:
The double value if isDeterministic() is true, otherwise throws an an UnsupportedOperationException.
• #### getOperator

public IntToDoubleFunction getOperator()
Description copied from interface: RandomVariableInterface
Returns the operator path → this.get(path) corresponding to this random variable.
Specified by:
getOperator in interface RandomVariableInterface
Returns:
The operator path → this.get(path) corresponding to this random variable.
• #### getRealizationsStream

public DoubleStream getRealizationsStream()
Description copied from interface: RandomVariableInterface
Returns a stream of doubles corresponding to the realizations of this random variable.
Specified by:
getRealizationsStream in interface RandomVariableInterface
Returns:
A stream of doubles corresponding to the realizations of this random variable.
• #### getMin

public double getMin()
Description copied from interface: RandomVariableInterface
Returns the minimum value attained by this random variable.
Specified by:
getMin in interface RandomVariableInterface
Returns:
The minimum value.
• #### getMax

public double getMax()
Description copied from interface: RandomVariableInterface
Returns the maximum value attained by this random variable.
Specified by:
getMax in interface RandomVariableInterface
Returns:
The maximum value.
• #### getAverage

public double getAverage()
Description copied from interface: RandomVariableInterface
Returns the expectation of this random variable.
Specified by:
getAverage in interface RandomVariableInterface
Returns:
The average assuming equi-distribution.
• #### getAverage

public double getAverage(RandomVariableInterface probabilities)
Description copied from interface: RandomVariableInterface
Returns the expectation of this random variable for a given probability measure (weight). The result of this method is (mathematically) equivalent to
this.mult(probabilities).getAverage() / probabilities.getAverage()
while the internal implementation may differ, e.g. being more efficient by performing multiplication and summation in the same loop.
Specified by:
getAverage in interface RandomVariableInterface
Parameters:
probabilities - The probability weights.
Returns:
The average assuming the given probability weights.
• #### getVariance

public double getVariance()
Description copied from interface: RandomVariableInterface
Returns the variance of this random variable, i.e., V where V = ((X-m)^2).getAverage() and X = this and m = X.getAverage().
Specified by:
getVariance in interface RandomVariableInterface
Returns:
The average assuming equi-distribution.
• #### getVariance

public double getVariance(RandomVariableInterface probabilities)
Description copied from interface: RandomVariableInterface
Returns the variance of this random variable, i.e., V where V = ((X-m)^2).getAverage(probabilities) and X = this and m = X.getAverage(probabilities).
Specified by:
getVariance in interface RandomVariableInterface
Parameters:
probabilities - The probability weights.
Returns:
The average assuming the given probability weights.
• #### getSampleVariance

public double getSampleVariance()
Description copied from interface: RandomVariableInterface
Returns the sample variance of this random variable, i.e., V * size()/(size()-1) where V = getVariance().
Specified by:
getSampleVariance in interface RandomVariableInterface
Returns:
The sample variance.
• #### getStandardDeviation

public double getStandardDeviation()
Description copied from interface: RandomVariableInterface
Returns the standard deviation of this random variable, i.e., sqrt(V) where V = ((X-m)^2).getAverage() and X = this and m = X.getAverage().
Specified by:
getStandardDeviation in interface RandomVariableInterface
Returns:
The standard deviation assuming equi-distribution.
• #### getStandardDeviation

public double getStandardDeviation(RandomVariableInterface probabilities)
Description copied from interface: RandomVariableInterface
Returns the standard deviation of this random variable, i.e., sqrt(V) where V = ((X-m)^2).getAverage(probabilities) and X = this and m = X.getAverage(probabilities).
Specified by:
getStandardDeviation in interface RandomVariableInterface
Parameters:
probabilities - The probability weights.
Returns:
The standard error assuming the given probability weights.
• #### getStandardError

public double getStandardError()
Description copied from interface: RandomVariableInterface
Returns the standard error (discretization error) of this random variable. For a Monte-Carlo simulation this is 1/Math.sqrt(n) * RandomVariableInterface.getStandardDeviation().
Specified by:
getStandardError in interface RandomVariableInterface
Returns:
The standard error assuming equi-distribution.
• #### getStandardError

public double getStandardError(RandomVariableInterface probabilities)
Description copied from interface: RandomVariableInterface
Returns the standard error (discretization error) of this random variable. For a Monte-Carlo simulation this is 1/Math.sqrt(n) * RandomVariableInterface.getStandardDeviation(RandomVariableInterface).
Specified by:
getStandardError in interface RandomVariableInterface
Parameters:
probabilities - The probability weights.
Returns:
The standard error assuming the given probability weights.
• #### getQuantile

public double getQuantile(double quantile)
Description copied from interface: RandomVariableInterface
Returns the quantile value for this given random variable, i.e., the value x such that P(this < x) = quantile, where P denotes the probability measure. The method will consider picewise constant values (with constant extrapolation) in the random variable. That is getQuantile(0) wiil return the smallest value and getQuantile(1) will return the largest value.
Specified by:
getQuantile in interface RandomVariableInterface
Parameters:
quantile - The quantile level.
Returns:
The quantile value assuming equi-distribution.
• #### getQuantile

public double getQuantile(double quantile,
RandomVariableInterface probabilities)
Description copied from interface: RandomVariableInterface
Returns the quantile value for this given random variable, i.e., the value x such that P(this < x) = quantile, where P denotes the probability measure.
Specified by:
getQuantile in interface RandomVariableInterface
Parameters:
quantile - The quantile level.
probabilities - The probability weights.
Returns:
The quantile value assuming the given probability weights.
• #### getQuantileExpectation

public double getQuantileExpectation(double quantileStart,
double quantileEnd)
Description copied from interface: RandomVariableInterface
Returns the expectation over a quantile for this given random variable. The method will consider picewise constant values (with constant extrapolation) in the random variable. For a ≤ b the method returns (Σa ≤ i ≤ b x[i]) / (b-a+1), where
• a = min(max((n+1) * quantileStart - 1, 0, 1);
• b = min(max((n+1) * quantileEnd - 1, 0, 1);
• n = this.size();
For quantileStart > quantileEnd the method returns getQuantileExpectation(quantileEnd, quantileStart).
Specified by:
getQuantileExpectation in interface RandomVariableInterface
Parameters:
quantileStart - Lower bound of the integral.
quantileEnd - Upper bound of the integral.
Returns:
The (conditional) expectation of the values between two quantile levels assuming equi-distribution.
• #### getHistogram

public double[] getHistogram(double[] intervalPoints)
Description copied from interface: RandomVariableInterface
Generates a Histogram based on the realizations stored in this random variable. The returned result array's length is intervalPoints.length+1.
• The value result[0] equals the relative frequency of values observed in the interval ( -infinity, intervalPoints[0] ].
• The value result[i] equals the relative frequency of values observed in the interval ( intervalPoints[i-1], intervalPoints[i] ].
• The value result[n] equals the relative frequency of values observed in the interval ( intervalPoints[n-1], infinity ).
where n = intervalPoints.length. Note that the intervals are open on the left, closed on the right, i.e., result[i] contains the number of elements x with intervalPoints[i-1] < x ≤ intervalPoints[i]. Thus, is you have a random variable which only takes values contained in the (sorted) array possibleValues, then result = getHistogram(possibleValues) returns an array where result[i] is the relative frequency of occurrence of possibleValues[i]. The sum of result[i] over all i is equal to 1, except for uninitialized random variables where all values are 0.
Specified by:
getHistogram in interface RandomVariableInterface
Parameters:
intervalPoints - Array of ascending values defining the interval boundaries.
Returns:
A histogram with respect to a provided interval.
• #### getHistogram

public double[][] getHistogram(int numberOfPoints,
double standardDeviations)
Description copied from interface: RandomVariableInterface
Generates a histogram based on the realizations stored in this random variable using interval points calculated from the arguments, see also RandomVariableInterface.getHistogram(double[]). The interval points are set with equal distance over an the interval of the specified standard deviation. The interval points used are
x[i] = mean + alpha[i] * standardDeviations * sigma
where The methods result is an array of two vectors, where result[0] are the intervals center points ('anchor points') and result[1] contains the relative frequency for the interval. The 'anchor point' for the interval (-infinity, x[0]) is x[0] - 1/2 (x[1]-x[0]) and the 'anchor point' for the interval (x[n], infinity) is x[n] + 1/2 (x[n]-x[n-1]). Here n = numberOfPoints is the number of interval points.
Specified by:
getHistogram in interface RandomVariableInterface
Parameters:
numberOfPoints - The number of interval points.
standardDeviations - The number of standard deviations defining the discretization radius.
Returns:
A histogram, given as double[2][], where result[0] are the center point of the intervals and result[1] is the value of RandomVariableInterface.getHistogram(double[]) for the given the interval points. The length of result[0] and result[1] is numberOfPoints+1.
• #### cache

public RandomVariableInterface cache()
Description copied from interface: RandomVariableInterface
Return a cacheable version of this object (often a self-reference). This method should be called when you store the object for later use, i.e., assign it, or when the object is consumed in a function, but later used also in another function.
Specified by:
cache in interface RandomVariableInterface
Returns:
A cacheable version of this object (often a self-reference).
• #### apply

public RandomVariableInterface apply(DoubleUnaryOperator operator)
Description copied from interface: RandomVariableInterface
Applies x → operator(x) to this random variable. It returns a new random variable with the result.
Specified by:
apply in interface RandomVariableInterface
Parameters:
operator - An unary operator/function, mapping double to double.
Returns:
New random variable with the result of the function.
• #### apply

public RandomVariableInterface apply(DoubleBinaryOperator operator,
RandomVariableInterface argument)
Description copied from interface: RandomVariableInterface
Applies x → operator(x,y) to this random variable, where x is this random variable and y is a given random variable. It returns a new random variable with the result.
Specified by:
apply in interface RandomVariableInterface
Parameters:
operator - A binary operator/function, mapping (double,double) to double.
argument - A random variable.
Returns:
New random variable with the result of the function.
• #### apply

public RandomVariableInterface apply(DoubleTernaryOperator operator,
RandomVariableInterface argument1,
RandomVariableInterface argument2)
Description copied from interface: RandomVariableInterface
Applies x → operator(x,y,z) to this random variable, where x is this random variable and y and z are given random variable. It returns a new random variable with the result.
Specified by:
apply in interface RandomVariableInterface
Parameters:
operator - A ternary operator/function, mapping (double,double,double) to double.
argument1 - A random variable representing y.
argument2 - A random variable representing z.
Returns:
New random variable with the result of the function.
• #### cap

public RandomVariableInterface cap(double cap)
Description copied from interface: RandomVariableInterface
Applies x → min(x,cap) to this random variable. It returns a new random variable with the result.
Specified by:
cap in interface RandomVariableInterface
Parameters:
cap - The cap.
Returns:
New random variable with the result of the function.
• #### floor

public RandomVariableInterface floor(double floor)
Description copied from interface: RandomVariableInterface
Applies x → max(x,floor) to this random variable. It returns a new random variable with the result.
Specified by:
floor in interface RandomVariableInterface
Parameters:
floor - The floor.
Returns:
New random variable with the result of the function.

public RandomVariableInterface add(double value)
Description copied from interface: RandomVariableInterface
Applies x → x + value to this random variable. It returns a new random variable with the result.
Specified by:
add in interface RandomVariableInterface
Parameters:
value - The value to add.
Returns:
New random variable with the result of the function.
• #### sub

public RandomVariableInterface sub(double value)
Description copied from interface: RandomVariableInterface
Applies x → x - value to this random variable.
Specified by:
sub in interface RandomVariableInterface
Parameters:
value - The value to subtract.
Returns:
New random variable with the result of the function.
• #### mult

public RandomVariableInterface mult(double value)
Description copied from interface: RandomVariableInterface
Applies x → x * value to this random variable.
Specified by:
mult in interface RandomVariableInterface
Parameters:
value - The value to multiply.
Returns:
New random variable with the result of the function.
• #### div

public RandomVariableInterface div(double value)
Description copied from interface: RandomVariableInterface
Applies x → x / value to this random variable.
Specified by:
div in interface RandomVariableInterface
Parameters:
value - The value to divide.
Returns:
New random variable with the result of the function.
• #### pow

public RandomVariableInterface pow(double exponent)
Description copied from interface: RandomVariableInterface
Applies x → pow(x,exponent) to this random variable.
Specified by:
pow in interface RandomVariableInterface
Parameters:
exponent - The exponent.
Returns:
New random variable with the result of the function.
• #### average

public RandomVariableInterface average()
Description copied from interface: RandomVariableInterface
Returns a random variable which is deterministic and corresponds the expectation of this random variable.
Specified by:
average in interface RandomVariableInterface
Returns:
New random variable being the expectation of this random variable.
• #### squared

public RandomVariableInterface squared()
Description copied from interface: RandomVariableInterface
Applies x → x * x to this random variable.
Specified by:
squared in interface RandomVariableInterface
Returns:
New random variable with the result of the function.
• #### sqrt

public RandomVariableInterface sqrt()
Description copied from interface: RandomVariableInterface
Applies x → sqrt(x) to this random variable.
Specified by:
sqrt in interface RandomVariableInterface
Returns:
New random variable with the result of the function.
• #### exp

public RandomVariableInterface exp()
Description copied from interface: RandomVariableInterface
Applies x → exp(x) to this random variable.
Specified by:
exp in interface RandomVariableInterface
Returns:
New random variable with the result of the function.
• #### log

public RandomVariableInterface log()
Description copied from interface: RandomVariableInterface
Applies x → log(x) to this random variable.
Specified by:
log in interface RandomVariableInterface
Returns:
New random variable with the result of the function.
• #### sin

public RandomVariableInterface sin()
Description copied from interface: RandomVariableInterface
Applies x → sin(x) to this random variable.
Specified by:
sin in interface RandomVariableInterface
Returns:
New random variable with the result of the function.
• #### cos

public RandomVariableInterface cos()
Description copied from interface: RandomVariableInterface
Applies x → cos(x) to this random variable.
Specified by:
cos in interface RandomVariableInterface
Returns:
New random variable with the result of the function.

public RandomVariableInterface add(RandomVariableInterface randomVariable)
Description copied from interface: RandomVariableInterface
Applies x → x+randomVariable to this random variable.
Specified by:
add in interface RandomVariableInterface
Parameters:
randomVariable - A random variable (compatible with this random variable).
Returns:
New random variable with the result of the function.
• #### sub

public RandomVariableInterface sub(RandomVariableInterface randomVariable)
Description copied from interface: RandomVariableInterface
Applies x → x-randomVariable to this random variable.
Specified by:
sub in interface RandomVariableInterface
Parameters:
randomVariable - A random variable (compatible with this random variable).
Returns:
New random variable with the result of the function.
• #### bus

public RandomVariableInterface bus(RandomVariableInterface randomVariable)
Description copied from interface: RandomVariableInterface
Applies x → randomVariable-x to this random variable.
Specified by:
bus in interface RandomVariableInterface
Parameters:
randomVariable - A random variable (compatible with this random variable).
Returns:
New random variable with the result of the function.
• #### mult

public RandomVariableInterface mult(RandomVariableInterface randomVariable)
Description copied from interface: RandomVariableInterface
Applies x → x*randomVariable to this random variable.
Specified by:
mult in interface RandomVariableInterface
Parameters:
randomVariable - A random variable (compatible with this random variable).
Returns:
New random variable with the result of the function.
• #### div

public RandomVariableInterface div(RandomVariableInterface randomVariable)
Description copied from interface: RandomVariableInterface
Applies x → x/randomVariable to this random variable.
Specified by:
div in interface RandomVariableInterface
Parameters:
randomVariable - A random variable (compatible with this random variable).
Returns:
New random variable with the result of the function.
• #### vid

public RandomVariableInterface vid(RandomVariableInterface randomVariable)
Description copied from interface: RandomVariableInterface
Applies x → randomVariable/x to this random variable.
Specified by:
vid in interface RandomVariableInterface
Parameters:
randomVariable - A random variable (compatible with this random variable).
Returns:
New random variable with the result of the function.
• #### cap

public RandomVariableInterface cap(RandomVariableInterface cap)
Description copied from interface: RandomVariableInterface
Applies x → min(x,cap) to this random variable.
Specified by:
cap in interface RandomVariableInterface
Parameters:
cap - The cap. A random variable (compatible with this random variable).
Returns:
New random variable with the result of the function.
• #### floor

public RandomVariableInterface floor(RandomVariableInterface floor)
Description copied from interface: RandomVariableInterface
Applies x → max(x,floor) to this random variable.
Specified by:
floor in interface RandomVariableInterface
Parameters:
floor - The floor. A random variable (compatible with this random variable).
Returns:
New random variable with the result of the function.
• #### accrue

public RandomVariableInterface accrue(RandomVariableInterface rate,
double periodLength)
Description copied from interface: RandomVariableInterface
Applies x → x * (1.0 + rate * periodLength) to this random variable.
Specified by:
accrue in interface RandomVariableInterface
Parameters:
rate - The accruing rate. A random variable (compatible with this random variable).
periodLength - The period length
Returns:
New random variable with the result of the function.
• #### discount

public RandomVariableInterface discount(RandomVariableInterface rate,
double periodLength)
Description copied from interface: RandomVariableInterface
Applies x → x / (1.0 + rate * periodLength) to this random variable.
Specified by:
discount in interface RandomVariableInterface
Parameters:
rate - The discounting rate. A random variable (compatible with this random variable).
periodLength - The period length
Returns:
New random variable with the result of the function.
• #### choose

public RandomVariableInterface choose(RandomVariableInterface valueIfTriggerNonNegative,
RandomVariableInterface valueIfTriggerNegative)
Description copied from interface: RandomVariableInterface
Applies x → (x ≥ 0 ? valueIfTriggerNonNegative : valueIfTriggerNegative)
Specified by:
choose in interface RandomVariableInterface
Parameters:
valueIfTriggerNonNegative - The value used if this is greater or equal 0
valueIfTriggerNegative - The value used if the this is less than 0
Returns:
New random variable with the result of the function.
• #### barrier

public RandomVariableInterface barrier(RandomVariableInterface trigger,
RandomVariableInterface valueIfTriggerNonNegative,
RandomVariableInterface valueIfTriggerNegative)
Description copied from interface: RandomVariableInterface
Applies x → (trigger ≥ 0 ? valueIfTriggerNonNegative : valueIfTriggerNegative)
Specified by:
barrier in interface RandomVariableInterface
Parameters:
trigger - The trigger. A random variable (compatible with this random variable).
valueIfTriggerNonNegative - The value used if the trigger is greater or equal 0
valueIfTriggerNegative - The value used if the trigger is less than 0
Returns:
New random variable with the result of the function.
• #### barrier

public RandomVariableInterface barrier(RandomVariableInterface trigger,
RandomVariableInterface valueIfTriggerNonNegative,
double valueIfTriggerNegative)
Description copied from interface: RandomVariableInterface
Applies x → (trigger ≥ 0 ? valueIfTriggerNonNegative : valueIfTriggerNegative)
Specified by:
barrier in interface RandomVariableInterface
Parameters:
trigger - The trigger. A random variable (compatible with this random variable).
valueIfTriggerNonNegative - The value used if the trigger is greater or equal 0
valueIfTriggerNegative - The value used if the trigger is less than 0
Returns:
New random variable with the result of the function.
• #### invert

public RandomVariableInterface invert()
Description copied from interface: RandomVariableInterface
Applies x → 1/x to this random variable.
Specified by:
invert in interface RandomVariableInterface
Returns:
New random variable with the result of the function.
• #### abs

public RandomVariableInterface abs()
Description copied from interface: RandomVariableInterface
Applies x → Math.abs(x), i.e. x → |x| to this random variable.
Specified by:
abs in interface RandomVariableInterface
Returns:
New random variable with the result of the function.

public RandomVariableInterface addProduct(RandomVariableInterface factor1,
double factor2)
Description copied from interface: RandomVariableInterface
Applies x → x + factor1 * factor2
Specified by:
addProduct in interface RandomVariableInterface
Parameters:
factor1 - The factor 1. A random variable (compatible with this random variable).
factor2 - The factor 2.
Returns:
New random variable with the result of the function.

public RandomVariableInterface addProduct(RandomVariableInterface factor1,
RandomVariableInterface factor2)
Description copied from interface: RandomVariableInterface
Applies x → x + factor1 * factor2
Specified by:
addProduct in interface RandomVariableInterface
Parameters:
factor1 - The factor 1. A random variable (compatible with this random variable).
factor2 - The factor 2. A random variable (compatible with this random variable).
Returns:
New random variable with the result of the function.

public RandomVariableInterface addRatio(RandomVariableInterface numerator,
RandomVariableInterface denominator)
Description copied from interface: RandomVariableInterface
Applies x → x + numerator / denominator
Specified by:
addRatio in interface RandomVariableInterface
Parameters:
numerator - The numerator of the ratio to add. A random variable (compatible with this random variable).
denominator - The denominator of the ratio to add. A random variable (compatible with this random variable).
Returns:
New random variable with the result of the function.
• #### subRatio

public RandomVariableInterface subRatio(RandomVariableInterface numerator,
RandomVariableInterface denominator)
Description copied from interface: RandomVariableInterface
Applies x → x - numerator / denominator
Specified by:
subRatio in interface RandomVariableInterface
Parameters:
numerator - The numerator of the ratio to sub. A random variable (compatible with this random variable).
denominator - The denominator of the ratio to sub. A random variable (compatible with this random variable).
Returns:
New random variable with the result of the function.
• #### isNaN

public RandomVariableInterface isNaN()
Description copied from interface: RandomVariableInterface
Applies x → (Double.isNaN(x) ? 1.0 : 0.0)
Specified by:
isNaN in interface RandomVariableInterface
Returns:
A random variable which is 1.0 for all states that are NaN, otherwise 0.0.