Logo
Reference manual - version qle_version
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()

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

Convolution of two discrete distribution

◆ rebucketfixednumber()

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()

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()

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

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

◆ sumspecialunsorted()

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

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

◆ sumspecial()

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

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

◆ sumspecialright()

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

TODO

◆ splicemezz()

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

TODO

◆ scalarmultprob()

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

Scale each density by factor b.

◆ scalarmultx()

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

Scale each coordinate by factor x.

◆ scalarshiftx()

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

Shift each coordinate by amount b.

◆ functionmax()

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()

template<class F>
DiscreteDistribution function ( F & f,
const DiscreteDistribution & a )
static

Apply function F to each coordinate.

◆ functionmin()

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

TODO

◆ expectation()

Real expectation ( const DiscreteDistribution & a)
static

Return the expected coordinate value.

◆ stdev()

Real stdev ( const DiscreteDistribution & a)
static

Return the standard deviation of the discrete distribution.

◆ leftstdev()

Real leftstdev ( const DiscreteDistribution & a)
static

TODO

◆ print()

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

Print the distribution of the provided stream.

◆ probabilitymatch()

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*.