#include <RndmGenerators.h>
Inheritance diagram for Rndm::DefinedPdf:
Public Member Functions | |
DefinedPdf (const std::vector< double > &pdf, long intpol) | |
Standard Constructor. | |
virtual | ~DefinedPdf () |
Standard Destructor. | |
std::vector< double > & | pdf () |
Access pdf. | |
long | interpolation () const |
Access interpolation type. | |
virtual IRndmGen::Param * | clone () const |
Clone parameters. | |
virtual const InterfaceID & | type () const |
Parameter's type. | |
Static Public Member Functions | |
static const InterfaceID & | typeID () |
Identifier for factory. | |
Protected Attributes | |
std::vector< double > | m_pdf |
Vector containing probability distribution function. | |
long | m_interpolation |
Interpolation type. | |
const InterfaceID | m_type |
Type of the generator. |
The probability distribution function (Pdf) must be provided by the user as an array of positive real number. The array size must also be provided. The Pdf doesn't need to be normalized to 1. if IntType = 0 ( default value ) a uniform random number is generated. The uniform number is then transformed to the user's distribution using the cumulative probability distribution constructed from his histogram. The cumulative distribution is inverted using a binary search for the nearest bin boundary and a linear interpolation within the bin. Therefore a constant density within each bin is generated. if IntType = 1 no interpolation is performed and the result is a discrete distribution.
Definition at line 320 of file RndmGenerators.h.
Rndm::DefinedPdf::DefinedPdf | ( | const std::vector< double > & | pdf, | |
long | intpol | |||
) | [inline] |
Standard Constructor.
Definition at line 328 of file RndmGenerators.h.
00329 : IRndmGen::Param(IID_IRndmDefinedPdf), 00330 m_pdf(pdf), 00331 m_interpolation(intpol) { }
virtual Rndm::DefinedPdf::~DefinedPdf | ( | ) | [inline, virtual] |
std::vector<double>& Rndm::DefinedPdf::pdf | ( | ) | [inline] |
long Rndm::DefinedPdf::interpolation | ( | ) | const [inline] |
Access interpolation type.
Definition at line 337 of file RndmGenerators.h.
00337 { return m_interpolation; }
static const InterfaceID& Rndm::DefinedPdf::typeID | ( | ) | [inline, static] |
Identifier for factory.
Definition at line 339 of file RndmGenerators.h.
00339 { return IID_IRndmDefinedPdf; }
virtual IRndmGen::Param* Rndm::DefinedPdf::clone | ( | ) | const [inline, virtual] |
Clone parameters.
Implements IRndmGen::Param.
Definition at line 341 of file RndmGenerators.h.
00341 { 00342 return new DefinedPdf(m_pdf,m_interpolation); 00343 }
virtual const InterfaceID& IRndmGen::Param::type | ( | ) | const [inline, virtual, inherited] |
std::vector<double> Rndm::DefinedPdf::m_pdf [protected] |
Vector containing probability distribution function.
Definition at line 323 of file RndmGenerators.h.
long Rndm::DefinedPdf::m_interpolation [protected] |
const InterfaceID IRndmGen::Param::m_type [protected, inherited] |