ThePEG 2.3.0
|
This is a help struct to perform the divide-and-conquer slicing of cells before starting the compensation procedure. More...
Public Member Functions | |
Slicer (DimType, ACDCGen &, const DVector &, const DVector &) | |
The constructor takes the number of dimensions of the function approximated by the current cell, the ACDCGen object controlling the generation and the lower-left and upper-right corners of the cell to be sliced. | |
Slicer (DimType Din, const Slicer &s, ACDCGenCell *cellin, const DVector &loin, const DVector &xselin, const DVector &upin, double fselin) | |
The constructor used internally when diagonally chopped-off cells need to be sliced themselves. | |
~Slicer () | |
Destructor. | |
void | divideandconquer () |
Called from both constructors to do the actual work. | |
void | init () |
Initialize the procedure, finding the slicing points around the current point. | |
void | slice () |
Do the slicing and increase the overestimate of the function in the resulting cell. | |
double | shiftmaxmin () |
After slicing a cell, find the maximum function value found in the resulting cell. | |
void | dohalf (DimType) |
Find the slice point of the current cell in the direction given. | |
void | checkdiag (ACDCGenCell *cell, DimType d, double lod, double upd) |
If split is in more than one dimensions check the overestimate for the chopped-off cell. | |
Public Attributes | |
DimType | D |
The dimension of the cell to be sliced. | |
DVector | lo |
The lower-left corner of the current cell. | |
DVector | up |
The upper-right corner of the current cell. | |
DVector | xcl |
The lower-left point found closest to the current point which gives a function value below the overestimate. | |
DVector | xcu |
The upper-right point found closest to the current point which gives a function value below the overestimate. | |
DVector | xhl |
The lower-left point furthest away from the current point which gives a function value abov the overestimate. | |
DVector | xhu |
The upper-right point furthest away from the current point which gives a function value abov the overestimate. | |
DVector | fhl |
The function values found for the xhl point. | |
DVector | fhu |
The function values found for the xhu point. | |
DVector | xsel |
The current point around which we are slicing. | |
double | fsel |
The function value in the current point. | |
ACDCGenCell * | current |
The current cell. | |
ACDCGenCell * | first |
The cell which resulted from the first slicing procedure. | |
DVector | firstlo |
The lower-left corner of the 'first' cell. | |
DVector | firstup |
The upper-right corner of the 'first' cell. | |
FncPtr | f |
A pointer to the function to be used. | |
double | epsilon |
The epsilon() value obtained from the controlling ACDCGen object. | |
double | margin |
The margin() value obtained from the controlling ACDCGen object. | |
multimap< double, DimType > | rateslice |
The dimensions to slice in rated by the resulting fractional volume of the resulting slice. | |
double | minf |
The minimu function value found in the current sliced cell (set by shiftmaxmin()). | |
bool | wholecomp |
If true, then the whole original cell should compensated in the continued generation. | |
This is a help struct to perform the divide-and-conquer slicing of cells before starting the compensation procedure.
double ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::shiftmaxmin | ( | ) |
After slicing a cell, find the maximum function value found in the resulting cell.
Also set the minimum value found.
void ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::slice | ( | ) |
Do the slicing and increase the overestimate of the function in the resulting cell.
If a point with a higher function value has been found repeat the slicing around that point etc.
ACDCGenCell* ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::current |
DimType ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::D |
double ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::epsilon |
FncPtr ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::f |
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::fhl |
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::fhu |
ACDCGenCell* ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::first |
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::firstlo |
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::firstup |
double ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::fsel |
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::lo |
double ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::margin |
double ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::minf |
The minimu function value found in the current sliced cell (set by shiftmaxmin()).
multimap<double,DimType> ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::rateslice |
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::up |
bool ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::wholecomp |
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::xcl |
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::xcu |
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::xhl |
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::xhu |
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::xsel |