thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer Struct Reference

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.
 
ACDCGenCellcurrent
 The current cell.
 
ACDCGenCellfirst
 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, DimTyperateslice
 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.
 

Detailed Description

template<typename Rnd, typename FncPtr>
struct ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer

This is a help struct to perform the divide-and-conquer slicing of cells before starting the compensation procedure.

Definition at line 566 of file ACDCGen.h.

Member Function Documentation

◆ shiftmaxmin()

template<typename Rnd, typename FncPtr>
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.

◆ slice()

template<typename Rnd, typename FncPtr>
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.

Member Data Documentation

◆ first

template<typename Rnd, typename FncPtr>
ACDCGenCell* ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::first

The cell which resulted from the first slicing procedure.

This is the first one to get an increased overestimate and is the one to be compensated. All other cells with increased overestimates are sub-cells to this one

Definition at line 693 of file ACDCGen.h.

◆ rateslice

template<typename Rnd, typename FncPtr>
multimap<double,DimType> ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::rateslice

The dimensions to slice in rated by the resulting fractional volume of the resulting slice.

If the dimension is negative it means that the cell should be slized from below.

Definition at line 726 of file ACDCGen.h.


The documentation for this struct was generated from the following file: