npstat is hosted by Hepforge, IPPP Durham
NPStat  5.10.0

#include <CompositeDistributionND.hh>

Inheritance diagram for npstat::CompositeDistributionND:
npstat::AbsDistributionND

Public Member Functions

 CompositeDistributionND (const AbsDistributionND *copula, const std::vector< const AbsDistribution1D * > marginals, bool assumePointerOwnership=false)
 
 CompositeDistributionND (const AbsDistributionND &copula, const AbsDistribution1D &m0, const AbsDistribution1D &m1)
 
 CompositeDistributionND (const AbsDistributionND &copula, const AbsDistribution1D &m0, const AbsDistribution1D &m1, const AbsDistribution1D &m2)
 
 CompositeDistributionND (const AbsDistributionND &copula, const AbsDistribution1D &m0, const AbsDistribution1D &m1, const AbsDistribution1D &m2, const AbsDistribution1D &m3)
 
 CompositeDistributionND (const AbsDistributionND &copula, const AbsDistribution1D &m0, const AbsDistribution1D &m1, const AbsDistribution1D &m2, const AbsDistribution1D &m3, const AbsDistribution1D &m4)
 
 CompositeDistributionND (const AbsDistributionND &copula)
 
void addMarginal (const AbsDistribution1D &marginal)
 
template<typename Num1 , unsigned Len1, unsigned Dim1>
 CompositeDistributionND (const double *location, const double *scale, unsigned locationAndScaleLength, const ArrayND< Num1, Len1, Dim1 > &histogram, const ArrayShape &copulaShape, const unsigned interpolationDegree)
 
 CompositeDistributionND (const CompositeDistributionND &)
 
CompositeDistributionNDoperator= (const CompositeDistributionND &)
 
virtual CompositeDistributionNDclone () const
 
bool mappedByQuantiles () const
 
const AbsDistributionNDcopula () const
 
const AbsDistribution1Dmarginal (unsigned index) const
 
double density (const double *x, unsigned dim) const
 
double copulaDensity (const double *x, unsigned dim) const
 
double productOfTheMarginals (const double *x, unsigned dim) const
 
void unitMap (const double *rnd, unsigned dim, double *x) const
 
virtual gs::ClassId classId () const
 
virtual bool write (std::ostream &of) const
 
- Public Member Functions inherited from npstat::AbsDistributionND
 AbsDistributionND (const unsigned dim)
 
 AbsDistributionND (const AbsDistributionND &r)
 
AbsDistributionNDoperator= (const AbsDistributionND &r)
 
bool operator== (const AbsDistributionND &r) const
 
bool operator!= (const AbsDistributionND &r) const
 
unsigned dim () const
 
virtual unsigned random (AbsRandomGenerator &g, double *x, unsigned lenX) const
 

Static Public Member Functions

static const char * classname ()
 
static unsigned version ()
 
static CompositeDistributionNDread (const gs::ClassId &id, std::istream &in)
 
- Static Public Member Functions inherited from npstat::AbsDistributionND
static const char * classname ()
 
static unsigned version ()
 
static AbsDistributionNDread (const gs::ClassId &id, std::istream &)
 

Protected Member Functions

virtual bool isEqual (const AbsDistributionND &) const
 

Additional Inherited Members

- Protected Attributes inherited from npstat::AbsDistributionND
const unsigned dim_
 

Detailed Description

This class represents multivariate statistical distributions decomposed into copula and marginals

Constructor & Destructor Documentation

◆ CompositeDistributionND() [1/4]

npstat::CompositeDistributionND::CompositeDistributionND ( const AbsDistributionND copula,
const std::vector< const AbsDistribution1D * >  marginals,
bool  assumePointerOwnership = false 
)

Constructor from pre-calculated copula and the marginals. If "assumePointerOwnership" is true then all argument distributions will be deleted in the destructor. If "assumePointerOwnership" is false then the constructor will build copies of all distributions (which will be later deleted in the destructor).

◆ CompositeDistributionND() [2/4]

npstat::CompositeDistributionND::CompositeDistributionND ( const AbsDistributionND copula,
const AbsDistribution1D m0,
const AbsDistribution1D m1 
)

Convenience constructor from copula and several marginals. The dimensionality of the copula must be consistent with the number of marginals provided.

◆ CompositeDistributionND() [3/4]

npstat::CompositeDistributionND::CompositeDistributionND ( const AbsDistributionND copula)
explicit

Start with the copula and add marginals later

◆ CompositeDistributionND() [4/4]

template<typename Num1 , unsigned Len1, unsigned Dim1>
npstat::CompositeDistributionND::CompositeDistributionND ( const double *  location,
const double *  scale,
unsigned  locationAndScaleLength,
const ArrayND< Num1, Len1, Dim1 > &  histogram,
const ArrayShape copulaShape,
const unsigned  interpolationDegree 
)

Constructor from a histogram. The copula and the marginals are generated internally. "interpolationDegree" should be either 0 or 1 (limited by the abilities of BinnedDensityND class).

Member Function Documentation

◆ addMarginal()

void npstat::CompositeDistributionND::addMarginal ( const AbsDistribution1D marginal)

Add a marginal. An exception will be thrown in case an attempt is made to add more marginals than copula has dimensions.

◆ classId()

virtual gs::ClassId npstat::CompositeDistributionND::classId ( ) const
inlinevirtual

Method needed for "geners" I/O

Implements npstat::AbsDistributionND.

◆ clone()

virtual CompositeDistributionND* npstat::CompositeDistributionND::clone ( ) const
inlinevirtual

"Virtual copy constructor"

Implements npstat::AbsDistributionND.

◆ copula()

const AbsDistributionND* npstat::CompositeDistributionND::copula ( ) const
inline

Return the copula

◆ density()

double npstat::CompositeDistributionND::density ( const double *  x,
unsigned  dim 
) const
virtual

Probability density

Implements npstat::AbsDistributionND.

◆ mappedByQuantiles()

bool npstat::CompositeDistributionND::mappedByQuantiles ( ) const
inlinevirtual

The following method should return "true" in case the "unitMap" method is implemented by a sequence of conditional quantile functions. Distributions with such maps permit quantile-based interpolation procedures.

Implements npstat::AbsDistributionND.

◆ marginal()

const AbsDistribution1D* npstat::CompositeDistributionND::marginal ( unsigned  index) const
inline

Return the marginal distribution for the given dimension

◆ unitMap()

void npstat::CompositeDistributionND::unitMap ( const double *  rnd,
unsigned  bufLen,
double *  x 
) const
virtual

Mapping from the unit hypercube into the density support region. Note that "bufLen" does not have to be equal to the dimensionality of the function. There may be an efficient way to generate just the leading dimensions in case "bufLen" is smaller than the dimensionality.

Implements npstat::AbsDistributionND.


The documentation for this class was generated from the following file: