Random size generator for Fuller curve. More...
#include <randomizer.hpp>
Public Types | |
typedef vector< double > | sizes_t |
typedef for sizes type | |
Public Member Functions | |
FullerCurveRandomizer () | |
Default constructor. More... | |
FullerCurveRandomizer (int n, double e, double minSize, double maxSize) | |
Constructor. More... | |
FullerCurveRandomizer (int n, double e, double minSize, double maxSize, const string &m) | |
Constructor. More... | |
virtual double | cdf (double size) const |
double | getExponent () |
Getter for exponent. | |
void | setExponent (double v) |
Setter for exponent. | |
virtual double | getMinSize () const |
Returns minimum defined size. | |
virtual double | getMaxSize () const |
Returns maximum defined size. | |
virtual const string & | getClassName () |
Returns string representation of FullerCurveRandomizer class name. | |
double | take () const |
Returns random size. A lot of random sizes should converge to the prescribed sieve curve. Mass/volume of aggregate is assumed pow(size,3) | |
const sizes_t & | getSizes () |
Getter for sizes. | |
string | getFileName () |
Getter for file name. | |
virtual void | save (const string &fName) const |
Saves receiver into specified file. More... | |
virtual void | save () const |
Saves receiver into this->fileName. | |
virtual bool | load (const string &fName) |
Loads receiver from specified file. More... | |
virtual bool | load () |
Loads receiver from this->fileName. More... | |
Static Public Member Functions | |
static double | random () |
Returns random number in the interval [0,1) (with uniform distribution) | |
static double | randint (int m) |
Returns random integer in the interval [0,m-1] (with uniform istribution) More... | |
static int | getSeed () |
Getter for seed. | |
static void | setSeed (int s) |
Setter for seed. More... | |
Static Public Attributes | |
static const string | className = "FullerCurveRandomizer" |
String representation of FullerCurveRandomizer class name. | |
Protected Member Functions | |
void | initSizes (unsigned int nMinValues) |
According to given parameters, constructs sizes. It is numerically converted sieve curve from terms of cumulative volume to the terms of sizes. | |
void | saveSizes (ostream &os) const |
Save sizes to ostream. More... | |
void | loadSizes (istream &is) |
Load sizes from istream. More... | |
Static Protected Member Functions | |
static AggregSizeRandomizer * | Load (istream &is) |
Create and return a new AggregSizeRandomizer from given istream. More... | |
Protected Attributes | |
double | exponent |
Exponent of analytical expression. | |
double | minSize |
User defined minimum aggregate size. | |
double | maxSize |
Maximum size from the analytical expression. | |
sizes_t | sizes |
Array of increasing sizes. Discrete representation of given sieve curve in terms of aggregate size. | |
string | fileName |
File name for saving itself. | |
Friends | |
ostream & | operator<< (ostream &f, const FullerCurveRandomizer &o) |
FullerCurveRandomizer to ostream shift operator. | |
istream & | operator>> (istream &f, FullerCurveRandomizer &o) |
FullerCurveRandomizer from istream shift operator. | |
Random size generator for Fuller curve.
Fuller curve is defined as P(d) = (d/dmax)^n. Exponent n is usually between 0.4-0.7, most often 0.5. Apart from dmax (maximum aggrgate size), also minimum aggregate size has to be defined
|
inline |
Default constructor.
sets exponent=0.5, minSize=0.5e-3, maxSize=16e-3
|
inline |
Constructor.
n | minimum length of sizes attribute |
e | exponent |
minSize | minimum aggregate size |
maxSize | maximum aggregate size |
|
inline |
Constructor.
n | minimum length of sizes attribute |
e | exponent |
minSize | minimum aggregate size |
maxSize | maximum aggregate size |
m | file name |
|
virtual |
Cumulative relative mass function. Returns what is the total mass of all aggregates spmaller than given size (normalized with total mass of all aggregates)
size | given size |
Implements aggregpacking::AggregSizeRandomizer.
|
staticprotectedinherited |
Create and return a new AggregSizeRandomizer from given istream.
is | input stream |
|
inlinevirtualinherited |
Loads receiver from specified file.
fName | given file name |
|
inlinevirtualinherited |
Loads receiver from this->fileName.
|
protectedinherited |
Load sizes from istream.
is | input stream |
|
inlinestaticinherited |
Returns random integer in the interval [0,m-1] (with uniform istribution)
m | upper limit if the interval |
|
inlinevirtualinherited |
Saves receiver into specified file.
fName | given file name |
|
protectedinherited |
Save sizes to ostream.
os | output stream |
|
inlinestaticinherited |
Setter for seed.
s | new seed |