CentralMVNDistribution

open class CentralMVNDistribution(covariances: Array<DoubleArray>, streamNumber: Int = 0, streamProvider: RNStreamProviderIfc = KSLRandom.DefaultRNStreamProvider) : MVCDF(source)

Represents a multi-variate normal distribution with means = 0.0 and the provided covariances. The computed CDF values are to about 2 decimal places using Monte-Carlo integration. There are more efficient and accurate methods to do this computation than done here.

Parameters

covariances

the variance-covariance matrix, must not be null, must be square and positive definite

streamNumber

the random number stream number, defaults to 0, which means the next stream

streamProvider

the provider of random number streams, defaults to KSLRandom.DefaultRNStreamProvider

Inheritors

Constructors

Link copied to clipboard
constructor(covariances: Array<DoubleArray>, streamNumber: Int = 0, streamProvider: RNStreamProviderIfc = KSLRandom.DefaultRNStreamProvider)

Types

Link copied to clipboard
Link copied to clipboard
protected inner class RootFunction(confidLevel: Double = 0.95) : FunctionIfc

Properties

Link copied to clipboard
Link copied to clipboard
protected val cfL: Array<DoubleArray>
Link copied to clipboard
protected val covariances: Array<DoubleArray>
Link copied to clipboard
Link copied to clipboard

The user can use this to control the specification of the monte-carlo integration of the CDF.

Link copied to clipboard
protected val nDim: Int
Link copied to clipboard
protected var sampler: MVRVariableIfc

Functions

Link copied to clipboard
protected open override fun computeCDF(): Double

Uses the Genz transform function for Monte-carlo evaluation of the integral. Accuracy depends on the sampling. Should be to about 2 decimal places with default settings.

Link copied to clipboard
protected fun genzFunction(u: DoubleArray): Double
Link copied to clipboard
protected fun sumProdLandY(r: Int, k: Int, y: DoubleArray): Double
Link copied to clipboard
open override fun toString(): String