thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
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.
 
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.
 
ACDCGenCellcurrent
 The current cell.
 
ACDCGenCellfirst
 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, DimTyperateslice
 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.
 

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

◆ current

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

The current cell.

Definition at line 685 of file ACDCGen.h.

◆ D

template<typename Rnd , typename FncPtr >
DimType ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::D

The dimension of the cell to be sliced.

Definition at line 627 of file ACDCGen.h.

◆ epsilon

template<typename Rnd , typename FncPtr >
double ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::epsilon

The epsilon() value obtained from the controlling ACDCGen object.

Definition at line 713 of file ACDCGen.h.

◆ f

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

A pointer to the function to be used.

Definition at line 707 of file ACDCGen.h.

◆ fhl

template<typename Rnd , typename FncPtr >
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::fhl

The function values found for the xhl point.

Definition at line 665 of file ACDCGen.h.

◆ fhu

template<typename Rnd , typename FncPtr >
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::fhu

The function values found for the xhu point.

Definition at line 670 of file ACDCGen.h.

◆ 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.

◆ firstlo

template<typename Rnd , typename FncPtr >
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::firstlo

The lower-left corner of the 'first' cell.

Definition at line 698 of file ACDCGen.h.

◆ firstup

template<typename Rnd , typename FncPtr >
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::firstup

The upper-right corner of the 'first' cell.

Definition at line 702 of file ACDCGen.h.

◆ fsel

template<typename Rnd , typename FncPtr >
double ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::fsel

The function value in the current point.

Definition at line 680 of file ACDCGen.h.

◆ lo

template<typename Rnd , typename FncPtr >
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::lo

The lower-left corner of the current cell.

Definition at line 632 of file ACDCGen.h.

◆ margin

template<typename Rnd , typename FncPtr >
double ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::margin

The margin() value obtained from the controlling ACDCGen object.

Definition at line 719 of file ACDCGen.h.

◆ minf

template<typename Rnd , typename FncPtr >
double ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::minf

The minimu function value found in the current sliced cell (set by shiftmaxmin()).

Definition at line 732 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.

◆ up

template<typename Rnd , typename FncPtr >
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::up

The upper-right corner of the current cell.

Definition at line 636 of file ACDCGen.h.

◆ wholecomp

template<typename Rnd , typename FncPtr >
bool ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::wholecomp

If true, then the whole original cell should compensated in the continued generation.

Definition at line 738 of file ACDCGen.h.

◆ xcl

template<typename Rnd , typename FncPtr >
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::xcl

The lower-left point found closest to the current point which gives a function value below the overestimate.

Definition at line 642 of file ACDCGen.h.

◆ xcu

template<typename Rnd , typename FncPtr >
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::xcu

The upper-right point found closest to the current point which gives a function value below the overestimate.

Definition at line 647 of file ACDCGen.h.

◆ xhl

template<typename Rnd , typename FncPtr >
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::xhl

The lower-left point furthest away from the current point which gives a function value abov the overestimate.

Definition at line 654 of file ACDCGen.h.

◆ xhu

template<typename Rnd , typename FncPtr >
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::xhu

The upper-right point furthest away from the current point which gives a function value abov the overestimate.

Definition at line 660 of file ACDCGen.h.

◆ xsel

template<typename Rnd , typename FncPtr >
DVector ACDCGenerator::ACDCGen< Rnd, FncPtr >::Slicer::xsel

The current point around which we are slicing.

Definition at line 675 of file ACDCGen.h.


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