|
ThePEG
1.8.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. More... | |
| double | shiftmaxmin () |
| After slicing a cell, find the maximum function value found in the resulting cell. More... | |
| 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. More... | |
| 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. More... | |
| 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::first |
| multimap<double,DimType> ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::rateslice |
1.8.9.1