Class GalambosCopula
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
thetadoubleThe parameter θ, at least 0.
Exceptions
- ArgumentException
thetais outside its range.
Methods
Evaluate(double, double)
The copula's value.
public double Evaluate(double x, double y)
Parameters
Returns
- double
C(x, y).
Exceptions
- ArgumentException
xoryis outside [0, 1].