#include <DistributionInverter.h>
Public Member Functions | |
DistributionInverter () | |
Creates a new uninitialized instance of this class. | |
void | operator= (const DistributionInverter &rhs) |
Copy the rhs oject into this current object. | |
void | initialize (Array1D< double > &x_input, Array1D< double > &y_input) |
Initialize the object with function values for the distribution random numbers are to be generated with respect to. | |
double | random () |
Generate a random number which is distributed with respect to the distribution this object was initialized with. | |
Private Member Functions | |
void | make_F_and_F_inverse (Array1D< double > &x_input, Array1D< double > &y_input) |
f is incoming distribution. | |
Private Attributes | |
LinearSpline | F_inverse |
Definition at line 32 of file DistributionInverter.h.
DistributionInverter::DistributionInverter | ( | ) | [inline] |
Creates a new uninitialized instance of this class.
Definition at line 38 of file DistributionInverter.h.
void DistributionInverter::operator= | ( | const DistributionInverter & | rhs | ) |
Copy the rhs oject into this current object.
rhs | object to set this equal to. |
Definition at line 15 of file DistributionInverter.cpp.
References F_inverse.
Initialize the object with function values for the distribution random numbers are to be generated with respect to.
Definition at line 21 of file DistributionInverter.cpp.
References make_F_and_F_inverse(), and Array1D< T >::size().
Referenced by AtomicOrbitalInverter::initialize().
double DistributionInverter::random | ( | ) |
Generate a random number which is distributed with respect to the distribution this object was initialized with.
iseed | seed for generating the random number. |
Definition at line 103 of file DistributionInverter.cpp.
References LinearSpline::evaluate(), F_inverse, LinearSpline::getFunctionValue(), ran, and Random::unidev().
Referenced by AtomicOrbitalInverter::get_xyz().
void DistributionInverter::make_F_and_F_inverse | ( | Array1D< double > & | x_input, | |
Array1D< double > & | y_input | |||
) | [private] |
f is incoming distribution.
F=integral(f); F_inverse=inverse(F);
x_input | is the incoming domain values | |
y_input | is the incoming function(x_input) values |
Definition at line 44 of file DistributionInverter.cpp.
References Array1D< T >::allocate(), Array1D< T >::dim1(), F_inverse, LinearSpline::initializeWithFunctionValues(), and TINY.
Referenced by initialize().
LinearSpline DistributionInverter::F_inverse [private] |
Definition at line 65 of file DistributionInverter.h.
Referenced by make_F_and_F_inverse(), operator=(), and random().