SG++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
sgpp::base::HashRefinement Class Reference

Free refinement class for sparse grids. More...

#include <HashRefinement.hpp>

Inheritance diagram for sgpp::base::HashRefinement:
sgpp::base::AbstractRefinement sgpp::base::HashRefinementInconsistent sgpp::optimization::HashRefinementMultiple

Public Member Functions

void free_refine (GridStorage &storage, RefinementFunctor &functor) override
 Refines a grid according to a RefinementFunctor provided. More...
 
size_t getNumberOfRefinablePoints (GridStorage &storage) override
 Computes and returns the number of grid points, which can be refined. More...
 
void refineGridpoint1D (GridStorage &storage, GridPoint &point, size_t d) override
 Refine one grid point along a single direction. More...
 
void refineGridpoint1D (GridStorage &storage, size_t seq, size_t d) override
 Refine one grid point along a single direction. More...
 
virtual ~HashRefinement ()
 
- Public Member Functions inherited from sgpp::base::AbstractRefinement
virtual size_t getIndexOfMin (RefinementFunctor::value_type *array, size_t length)
 Returns the index of the first occurrence of minimal element in array. More...
 
bool isRefinable (GridStorage &storage, GridPoint &point)
 Check if the grid point is refinable. More...
 
virtual ~AbstractRefinement ()
 Destructor. More...
 

Protected Member Functions

virtual void addElementToCollection (const GridStorage::grid_map_iterator &iter, AbstractRefinement::refinement_list_type current_value_list, size_t refinements_num, AbstractRefinement::refinement_container_type &collection)
 Adds elements to the collection. More...
 
void collectRefinablePoints (GridStorage &storage, RefinementFunctor &functor, AbstractRefinement::refinement_container_type &collection) override
 Examines the grid points and stores the indices those that can be refined and have maximal indicator values. More...
 
void createGridpoint (GridStorage &storage, GridPoint &point) override
 This method creates a new point on the grid. More...
 
AbstractRefinement::refinement_list_type getIndicator (GridStorage &storage, const GridStorage::grid_map_iterator &iter, const RefinementFunctor &functor) const override
 Generates a list with indicator elements. More...
 
void refineGridpoint (GridStorage &storage, size_t refine_index) override
 This method refines a grid point by generating the children in every dimension of the grid and all their missing ancestors by calling create_gridpoint(). More...
 
void refineGridpointsCollection (GridStorage &storage, RefinementFunctor &functor, AbstractRefinement::refinement_container_type &collection) override
 Extends the grid adding elements defined in collection. More...
 
- Protected Member Functions inherited from sgpp::base::AbstractRefinement
virtual void createGridpoint1D (GridPoint &point, size_t d, GridStorage &storage, index_t &source_index, level_t &source_level)
 Creates children grid points along single direction. More...
 
virtual void createGridpointSubroutine (GridStorage &storage, GridPoint &point)
 Subroutine for grid point creation. More...
 

Additional Inherited Members

- Public Types inherited from sgpp::base::AbstractRefinement
typedef std::vector
< refinement_pair_type
refinement_container_type
 Container for the collection of the refinement atoms and the corresponding value. More...
 
typedef
AbstractRefinement_refinement_key 
refinement_key_type
 Type of the identifier of the refinement atom (e.g. More...
 
typedef std::forward_list
< AbstractRefinement::refinement_pair_type
refinement_list_type
 
typedef std::pair
< std::shared_ptr
< refinement_key_type >
, refinement_value_type
refinement_pair_type
 Pair for the refinement key and value. More...
 
typedef double refinement_value_type
 Type of functor value assigned to each refinement atom. More...
 
- Static Public Member Functions inherited from sgpp::base::AbstractRefinement
static bool compare_pairs (const refinement_pair_type &lhs, const refinement_pair_type &rhs)
 Comparison of the refinement_pair_type. More...
 

Detailed Description

Free refinement class for sparse grids.

Constructor & Destructor Documentation

virtual sgpp::base::HashRefinement::~HashRefinement ( )
inlinevirtual

Member Function Documentation

void sgpp::base::HashRefinement::addElementToCollection ( const GridStorage::grid_map_iterator iter,
AbstractRefinement::refinement_list_type  current_value_list,
size_t  refinements_num,
AbstractRefinement::refinement_container_type collection 
)
protectedvirtual

Adds elements to the collection.

This method is responsible for selection the elements with most important indicators and to limit the size of collection to refinements_num elements.

Parameters
iterstorage iterator
current_value_listlist with elements that contain keys and values that specify refinement
refinements_numnumber of elements to refine
collectioncontainer where element pairs for refinement need to be stored

References sgpp::base::AbstractRefinement::compare_pairs().

Referenced by collectRefinablePoints(), and sgpp::optimization::HashRefinementMultiple::collectRefinablePoints().

void sgpp::base::HashRefinement::collectRefinablePoints ( GridStorage storage,
RefinementFunctor functor,
AbstractRefinement::refinement_container_type collection 
)
overrideprotectedvirtual

Examines the grid points and stores the indices those that can be refined and have maximal indicator values.

Parameters
storagehashmap that stores the grid points
functora PredictiveRefinementIndicator specifying the refinement criteria
collectioncontainer that contains elements to refine (empty initially)

Implements sgpp::base::AbstractRefinement.

Reimplemented in sgpp::optimization::HashRefinementMultiple.

References addElementToCollection(), sgpp::base::HashGridStorage::begin(), sgpp::base::HashGridStorage::end(), sgpp::base::HashGridStorage::find(), sgpp::base::HashGridPoint::get(), sgpp::base::HashGridStorage::getDimension(), getIndicator(), sgpp::base::RefinementFunctor::getRefinementsNum(), and sgpp::base::HashGridPoint::set().

Referenced by free_refine().

void sgpp::base::HashRefinement::createGridpoint ( GridStorage storage,
GridPoint point 
)
overrideprotectedvirtual

This method creates a new point on the grid.

It checks if some parents or children are needed in other dimensions.

Parameters
storagehashmap that stores the gridpoints
pointThe point that should be inserted

Implements sgpp::base::AbstractRefinement.

Reimplemented in sgpp::base::HashRefinementInconsistent.

References sgpp::base::AbstractRefinement::createGridpoint1D(), sgpp::base::HashGridStorage::getDimension(), and sgpp::base::HashGridStorage::insert().

Referenced by refineGridpoint1D().

void sgpp::base::HashRefinement::free_refine ( GridStorage storage,
RefinementFunctor functor 
)
overridevirtual

Refines a grid according to a RefinementFunctor provided.

Refines up to RefinementFunctor::getRefinementsNum() grid points if possible, and if their refinement value is larger than RefinementFunctor::start() and their absolute value is larger or equal than RefinementFunctor::getRefinementThreshold()

Parameters
storagehashmap that stores the grid points
functora RefinementFunctor specifying the refinement criteria

Implements sgpp::base::AbstractRefinement.

References collectRefinablePoints(), sgpp::base::HashGridStorage::getSize(), and refineGridpointsCollection().

Referenced by sgpp::optimization::IterativeGridGeneratorSOO::generate(), sgpp::optimization::IterativeGridGeneratorRitterNovak::generate(), sgpp::base::StandardGridGenerator::refine(), and sgpp::base::PrewaveletGridGenerator::refine().

AbstractRefinement::refinement_list_type sgpp::base::HashRefinement::getIndicator ( GridStorage storage,
const GridStorage::grid_map_iterator iter,
const RefinementFunctor functor 
) const
overrideprotectedvirtual

Generates a list with indicator elements.

Parameters
storagegrid storage
iteriterator
functorrefinement functor
Returns
list with indicator elements

Implements sgpp::base::AbstractRefinement.

Referenced by collectRefinablePoints(), and sgpp::optimization::HashRefinementMultiple::collectRefinablePoints().

size_t sgpp::base::HashRefinement::getNumberOfRefinablePoints ( GridStorage storage)
overridevirtual

Computes and returns the number of grid points, which can be refined.

This is the number of grid points that have at least one child missing.

Parameters
storagehashmap that stores the grid points
Returns
The number of grid points that can be refined

Implements sgpp::base::AbstractRefinement.

Reimplemented in sgpp::optimization::HashRefinementMultiple.

References sgpp::base::HashGridStorage::begin(), sgpp::base::HashGridStorage::end(), sgpp::base::HashGridStorage::find(), sgpp::base::HashGridPoint::get(), sgpp::base::HashGridStorage::getDimension(), sgpp::base::HashGridStorage::getSize(), and sgpp::base::HashGridPoint::set().

Referenced by sgpp::base::StandardGridGenerator::getNumberOfRefinablePoints(), and sgpp::base::PrewaveletGridGenerator::getNumberOfRefinablePoints().

void sgpp::base::HashRefinement::refineGridpoint ( GridStorage storage,
size_t  refine_index 
)
overrideprotectedvirtual

This method refines a grid point by generating the children in every dimension of the grid and all their missing ancestors by calling create_gridpoint().

Parameters
storagehashmap that stores the gridpoints
refine_indexThe index in the hashmap of the point that should be refined

Implements sgpp::base::AbstractRefinement.

References sgpp::base::HashGridStorage::getDimension(), and refineGridpoint1D().

Referenced by refineGridpointsCollection().

void sgpp::base::HashRefinement::refineGridpoint1D ( GridStorage storage,
GridPoint point,
size_t  d 
)
overridevirtual

Refine one grid point along a single direction.

Parameters
storagehashmap that stores the grid points
pointpoint to refine
ddirection

Implements sgpp::base::AbstractRefinement.

Reimplemented in sgpp::optimization::HashRefinementMultiple.

References createGridpoint(), sgpp::base::HashGridPoint::get(), sgpp::base::HashGridStorage::isContaining(), sgpp::base::HashGridPoint::set(), and sgpp::base::HashGridPoint::setLeaf().

Referenced by refineGridpoint(), and refineGridpoint1D().

void sgpp::base::HashRefinement::refineGridpoint1D ( GridStorage storage,
size_t  seq,
size_t  d 
)
overridevirtual

Refine one grid point along a single direction.

Parameters
storagehashmap that stores the grid points
seqsequential number of the grid point
ddirection

Reimplemented from sgpp::base::AbstractRefinement.

References sgpp::base::HashGridStorage::getPoint(), and refineGridpoint1D().

void sgpp::base::HashRefinement::refineGridpointsCollection ( GridStorage storage,
RefinementFunctor functor,
AbstractRefinement::refinement_container_type collection 
)
overrideprotectedvirtual

Extends the grid adding elements defined in collection.

Parameters
storagehashmap that stores the grid points
functora PredictiveRefinementIndicator specifying the refinement criteria
collectioncontainer that contains elements to refine (empty initially)

Implements sgpp::base::AbstractRefinement.

References sgpp::base::RefinementFunctor::getRefinementThreshold(), and refineGridpoint().

Referenced by free_refine().


The documentation for this class was generated from the following files: