Logo
Reference manual - version qle_version
Static Public Member Functions | List of all members
MDD Class Reference

Modify Distrete Distribution. More...

#include <qle/math/discretedistribution.hpp>

Static Public Member Functions

static DiscreteDistribution convolve (const DiscreteDistribution &a, const DiscreteDistribution &b, Size buckets)
 
static DiscreteDistribution rebucketfixednumber (const DiscreteDistribution &a, Size buckets)
 
static DiscreteDistribution rebucketfixedstep (const DiscreteDistribution &a, Real step)
 
static DiscreteDistribution sum (const DiscreteDistribution &a, const DiscreteDistribution &b, Size buckets)
 
static DiscreteDistribution sumspecialunsorted (const DiscreteDistribution &a, const DiscreteDistribution &b, Real c)
 
static DiscreteDistribution sumspecial (const DiscreteDistribution &a, const DiscreteDistribution &b, Real c)
 
static DiscreteDistribution sumspecialright (const DiscreteDistribution &a, const DiscreteDistribution &b, Real c)
 
static DiscreteDistribution splicemezz (const DiscreteDistribution &a, const DiscreteDistribution &b, Real c)
 
static DiscreteDistribution scalarmultprob (const DiscreteDistribution &a, const Real &b)
 
static DiscreteDistribution scalarmultx (const DiscreteDistribution &a, const Real &b)
 
static DiscreteDistribution scalarshiftx (const DiscreteDistribution &a, const Real &b)
 
static DiscreteDistribution functionmax (const DiscreteDistribution &a, const Real &b)
 
template<class F >
static DiscreteDistribution function (F &, const DiscreteDistribution &a)
 
static DiscreteDistribution functionmin (const DiscreteDistribution &a, const Real &b)
 
static Real expectation (const DiscreteDistribution &a)
 
static Real stdev (const DiscreteDistribution &a)
 
static Real leftstdev (const DiscreteDistribution &a)
 
static Real print (const DiscreteDistribution &a, const ostringstream &o)
 
static Real probabilitymatch (const DiscreteDistribution &a, const DiscreteDistribution &b, Real c, bool forward)
 
static Real probabilitymatch (const DiscreteDistribution &a, const DiscreteDistribution &b, Real c)
 Probability matching with linear interpolation.
 

Detailed Description

Modify Distrete Distribution.

This class implements a set of operations on discrete disctributions, that involve one or two distributions.

Member Function Documentation

◆ convolve()

static DiscreteDistribution convolve ( const DiscreteDistribution a,
const DiscreteDistribution b,
Size  buckets 
)
static

Convolution of two discrete distribution

◆ rebucketfixednumber()

static DiscreteDistribution rebucketfixednumber ( const DiscreteDistribution a,
Size  buckets 
)
static

Amend the discretization of the distribution such that the number of buckets is reduced to the given number.

◆ rebucketfixedstep()

static DiscreteDistribution rebucketfixedstep ( const DiscreteDistribution a,
Real  step 
)
static

Amend the discretization of the distribution such that the distance of adjacent buckets is reduced to the given number.

◆ sum()

static DiscreteDistribution sum ( const DiscreteDistribution a,
const DiscreteDistribution b,
Size  buckets 
)
static

Add two discrete distributions while introducing a desired number of buckets.

◆ sumspecialunsorted()

static DiscreteDistribution sumspecialunsorted ( const DiscreteDistribution a,
const DiscreteDistribution b,
Real  c 
)
static

Add c * distribution b to distribution a, starting from the left.

◆ sumspecial()

static DiscreteDistribution sumspecial ( const DiscreteDistribution a,
const DiscreteDistribution b,
Real  c 
)
static

Add c * distribution b to distribution a, starting from the right.

◆ sumspecialright()

static DiscreteDistribution sumspecialright ( const DiscreteDistribution a,
const DiscreteDistribution b,
Real  c 
)
static

TODO

◆ splicemezz()

static DiscreteDistribution splicemezz ( const DiscreteDistribution a,
const DiscreteDistribution b,
Real  c 
)
static

TODO

◆ scalarmultprob()

static DiscreteDistribution scalarmultprob ( const DiscreteDistribution a,
const Real &  b 
)
static

Scale each density by factor b.

◆ scalarmultx()

static DiscreteDistribution scalarmultx ( const DiscreteDistribution a,
const Real &  b 
)
static

Scale each coordinate by factor x.

◆ scalarshiftx()

static DiscreteDistribution scalarshiftx ( const DiscreteDistribution a,
const Real &  b 
)
static

Shift each coordinate by amount b.

◆ functionmax()

static DiscreteDistribution functionmax ( const DiscreteDistribution a,
const Real &  b 
)
static

CHECK: Cut off the branch of the distribution to the left of coordinate b and subsitute it with a single oint at coordinate b holding the cumulative probability up to b.

◆ function()

DiscreteDistribution function ( F &  f,
const DiscreteDistribution a 
)
static

Apply function F to each coordinate.

◆ functionmin()

static DiscreteDistribution functionmin ( const DiscreteDistribution a,
const Real &  b 
)
static

TODO

◆ expectation()

static Real expectation ( const DiscreteDistribution a)
static

Return the expected coordinate value.

◆ stdev()

static Real stdev ( const DiscreteDistribution a)
static

Return the standard deviation of the discrete distribution.

◆ leftstdev()

static Real leftstdev ( const DiscreteDistribution a)
static

TODO

◆ print()

static Real print ( const DiscreteDistribution a,
const ostringstream &  o 
)
static

Print the distribution the the provided stream.

◆ probabilitymatch()

static Real probabilitymatch ( const DiscreteDistribution a,
const DiscreteDistribution b,
Real  c,
bool  forward 
)
static

Probability matching:

Compute the cumulative probability P_b(c) of distribution b up to the provided coordintae c.

Compute the coordinate c* of distribution a where its cumulative probability equals P_b(c), i.e. P_a(c*) = P_b(c).

Return coordinate c*.