public class RandomVariableDifferentiableAD extends Object implements RandomVariableDifferentiableInterface
RandomVariableDifferentiableInterface using
the forward algorithmic differentiation (AD).
This class implements the optimized stochastic AD as it is described in
ssrn.com/abstract=2995695.| Constructor and Description |
|---|
RandomVariableDifferentiableAD(double value) |
RandomVariableDifferentiableAD(double time,
double[] realisations) |
RandomVariableDifferentiableAD(RandomVariableInterface randomVariable) |
RandomVariableDifferentiableAD(RandomVariableInterface values,
List<RandomVariableInterface> arguments,
ConditionalExpectationEstimatorInterface estimator,
net.finmath.montecarlo.automaticdifferentiation.forward.RandomVariableDifferentiableAD.OperatorType operator) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetCloneIndependent, getGradientaddSumProductpublic RandomVariableDifferentiableAD(double value)
public RandomVariableDifferentiableAD(double time,
double[] realisations)
public RandomVariableDifferentiableAD(RandomVariableInterface randomVariable)
public RandomVariableDifferentiableAD(RandomVariableInterface values, List<RandomVariableInterface> arguments, ConditionalExpectationEstimatorInterface estimator, net.finmath.montecarlo.automaticdifferentiation.forward.RandomVariableDifferentiableAD.OperatorType operator)
public static RandomVariableDifferentiableAD of(double value)
public static RandomVariableDifferentiableAD of(RandomVariableInterface randomVariable)
public RandomVariableInterface getRandomVariable()
public net.finmath.montecarlo.automaticdifferentiation.forward.RandomVariableDifferentiableAD.OperatorTreeNode getOperatorTreeNode()
public Long getID()
RandomVariableDifferentiableInterfacegetGradient.getID in interface RandomVariableDifferentiableInterfacepublic Map<Long,RandomVariableInterface> getGradient(Set<Long> independentIDs)
this.
Performs a backward automatic differentiation.getGradient in interface RandomVariableDifferentiableInterfaceindependentIDs - Set of IDs of random variables \( v \) with respect to which the gradients \( \frac{d u}{d v} \) will be calculated. If null, derivatives w.r.t. all known independents are returned.public Map<Long,RandomVariableInterface> getTangents(Set<Long> dependentIDs)
RandomVariableDifferentiableInterfacethis.getTangents in interface RandomVariableDifferentiableInterfacedependentIDs - Set of IDs of random variables \( u \) with respect to which the differentials \( \frac{d u}{d v} \) will be calculated.
If null, derivatives w.r.t. all known dependents are returned.public boolean equals(RandomVariableInterface randomVariable)
equals in interface RandomVariableInterfacepublic double getFiltrationTime()
getFiltrationTime in interface RandomVariableInterfacepublic double get(int pathOrState)
get in interface RandomVariableInterfacepublic int size()
size in interface RandomVariableInterfacepublic boolean isDeterministic()
isDeterministic in interface RandomVariableInterfacepublic double[] getRealizations()
getRealizations in interface RandomVariableInterfacepublic Double doubleValue()
doubleValue in interface RandomVariableInterfacepublic double getMin()
getMin in interface RandomVariableInterfacepublic double getMax()
getMax in interface RandomVariableInterfacepublic double getAverage()
getAverage in interface RandomVariableInterfacepublic double getAverage(RandomVariableInterface probabilities)
getAverage in interface RandomVariableInterfacepublic double getVariance()
getVariance in interface RandomVariableInterfacepublic double getVariance(RandomVariableInterface probabilities)
getVariance in interface RandomVariableInterfacepublic double getSampleVariance()
getSampleVariance in interface RandomVariableInterfacepublic double getStandardDeviation()
getStandardDeviation in interface RandomVariableInterfacepublic double getStandardDeviation(RandomVariableInterface probabilities)
getStandardDeviation in interface RandomVariableInterfacepublic double getStandardError()
getStandardError in interface RandomVariableInterfacepublic double getStandardError(RandomVariableInterface probabilities)
getStandardError in interface RandomVariableInterfacepublic double getQuantile(double quantile)
getQuantile in interface RandomVariableInterfacepublic double getQuantile(double quantile,
RandomVariableInterface probabilities)
getQuantile in interface RandomVariableInterfacepublic double getQuantileExpectation(double quantileStart,
double quantileEnd)
getQuantileExpectation in interface RandomVariableInterfacepublic double[] getHistogram(double[] intervalPoints)
getHistogram in interface RandomVariableInterfacepublic double[][] getHistogram(int numberOfPoints,
double standardDeviations)
getHistogram in interface RandomVariableInterfacepublic RandomVariableInterface cache()
cache in interface RandomVariableInterfacepublic RandomVariableInterface cap(double cap)
cap in interface RandomVariableInterfacepublic RandomVariableInterface floor(double floor)
floor in interface RandomVariableInterfacepublic RandomVariableInterface add(double value)
add in interface RandomVariableInterfacepublic RandomVariableInterface sub(double value)
sub in interface RandomVariableInterfacepublic RandomVariableInterface mult(double value)
mult in interface RandomVariableInterfacepublic RandomVariableInterface div(double value)
div in interface RandomVariableInterfacepublic RandomVariableInterface pow(double exponent)
pow in interface RandomVariableInterfacepublic RandomVariableInterface average()
average in interface RandomVariableInterfacepublic RandomVariableInterface getConditionalExpectation(ConditionalExpectationEstimatorInterface estimator)
getConditionalExpectation in interface RandomVariableInterfacepublic RandomVariableInterface squared()
squared in interface RandomVariableInterfacepublic RandomVariableInterface sqrt()
sqrt in interface RandomVariableInterfacepublic RandomVariableInterface exp()
exp in interface RandomVariableInterfacepublic RandomVariableInterface log()
log in interface RandomVariableInterfacepublic RandomVariableInterface sin()
sin in interface RandomVariableInterfacepublic RandomVariableInterface cos()
cos in interface RandomVariableInterfacepublic RandomVariableInterface add(RandomVariableInterface randomVariable)
add in interface RandomVariableInterfacepublic RandomVariableInterface sub(RandomVariableInterface randomVariable)
sub in interface RandomVariableInterfacepublic RandomVariableDifferentiableInterface mult(RandomVariableInterface randomVariable)
mult in interface RandomVariableInterfacepublic RandomVariableInterface div(RandomVariableInterface randomVariable)
div in interface RandomVariableInterfacepublic RandomVariableInterface cap(RandomVariableInterface cap)
cap in interface RandomVariableInterfacepublic RandomVariableInterface floor(RandomVariableInterface floor)
floor in interface RandomVariableInterfacepublic RandomVariableInterface accrue(RandomVariableInterface rate, double periodLength)
accrue in interface RandomVariableInterfacepublic RandomVariableInterface discount(RandomVariableInterface rate, double periodLength)
discount in interface RandomVariableInterfacepublic RandomVariableInterface barrier(RandomVariableInterface trigger, RandomVariableInterface valueIfTriggerNonNegative, RandomVariableInterface valueIfTriggerNegative)
barrier in interface RandomVariableInterfacepublic RandomVariableInterface barrier(RandomVariableInterface trigger, RandomVariableInterface valueIfTriggerNonNegative, double valueIfTriggerNegative)
barrier in interface RandomVariableInterfacepublic RandomVariableInterface invert()
invert in interface RandomVariableInterfacepublic RandomVariableInterface abs()
abs in interface RandomVariableInterfacepublic RandomVariableInterface addProduct(RandomVariableInterface factor1, double factor2)
addProduct in interface RandomVariableInterfacepublic RandomVariableInterface addProduct(RandomVariableInterface factor1, RandomVariableInterface factor2)
addProduct in interface RandomVariableInterfacepublic RandomVariableInterface addRatio(RandomVariableInterface numerator, RandomVariableInterface denominator)
addRatio in interface RandomVariableInterfacepublic RandomVariableInterface subRatio(RandomVariableInterface numerator, RandomVariableInterface denominator)
subRatio in interface RandomVariableInterfacepublic RandomVariableInterface isNaN()
isNaN in interface RandomVariableInterfacepublic IntToDoubleFunction getOperator()
getOperator in interface RandomVariableInterfacepublic DoubleStream getRealizationsStream()
getRealizationsStream in interface RandomVariableInterfacepublic RandomVariableInterface apply(DoubleUnaryOperator operator)
apply in interface RandomVariableInterfacepublic RandomVariableInterface apply(DoubleBinaryOperator operator, RandomVariableInterface argument)
apply in interface RandomVariableInterfacepublic RandomVariableInterface apply(DoubleTernaryOperator operator, RandomVariableInterface argument1, RandomVariableInterface argument2)
apply in interface RandomVariableInterfacepublic RandomVariableInterface getVarianceAsRandomVariableAAD()
public RandomVariableInterface getSampleVarianceAsRandomVariableAAD()
public RandomVariableInterface getStandardDeviationAsRandomVariableAAD()
public RandomVariableInterface getStandardErrorAsRandomVariableAAD()
public RandomVariableInterface getMinAsRandomVariableAAD()
public RandomVariableInterface getMaxAsRandomVariableAAD()
public Map<Long,RandomVariableInterface> getTangents()
RandomVariableDifferentiableInterfacethis.getTangents in interface RandomVariableDifferentiableInterfaceCopyright © 2018. All rights reserved.