Table of Contents

Class GalambosCopula

Namespace
NanoQL.Numerics
Assembly
NanoQL.dll

The Galambos copula, C(x, y) = xy·exp(((−ln x)^−θ + (−ln y)^−θ)^(−1/θ)).

public sealed class GalambosCopula
Inheritance
GalambosCopula
Inherited Members

Remarks

Immutable. On the unit square's edges it returns the boundary values, C(u, 0) = C(0, v) = 0, C(u, 1) = u and C(1, v) = v, before its formula, as every copula here does: QuantLib's is NaN at (0, 0). Above θ 19, where (−ln x)^−θ can overflow (from θ 19.3 at the largest x below 1, so QuantLib's is ∞ from θ about 50 on points 1e-8 from the edge), the smaller logarithm m is factored out, xy·exp(m(1 + r^θ)^(−1/θ)) with r the ratio of the two; QuantLib's formula to θ 19, where no power leaves the doubles' normal range. Where xy is below the normal range the product is formed last, and where e^(…) overflows (x and y both subnormal) as e^(… + ln x + ln y), where QuantLib's is NaN.

Constructors

GalambosCopula(double)

Initializes a new instance of the GalambosCopula class.

public GalambosCopula(double theta)

Parameters

theta double

The parameter θ, at least 0.

Exceptions

ArgumentException

theta is outside its range.

Methods

Evaluate(double, double)

The copula's value.

public double Evaluate(double x, double y)

Parameters

x double

The first argument, in [0, 1].

y double

The second argument, in [0, 1].

Returns

double

C(x, y).

Exceptions

ArgumentException

x or y is outside [0, 1].