SG++-Doxygen-Documentation
|
Basic algorithm for getting all affected basis functions. More...
#include <AlgorithmEvaluationTransposed.hpp>
Public Member Functions | |
AlgorithmEvaluationTransposed (GridStorage &storage) | |
void | operator() (BASIS &basis, const DataVector &point, double alpha, DataVector &result) |
Returns evaluations of all basis functions that are non-zero at a given evaluation point. More... | |
~AlgorithmEvaluationTransposed () | |
Protected Member Functions | |
void | rec (BASIS &basis, DataVector &point, size_t current_dim, double value, GridStorage::grid_iterator &working, index_t *source, double alpha, DataVector &result) |
Recursive traversal of the "tree" of basis functions for evaluation, used in operator(). More... | |
Protected Attributes | |
GridStorage & | storage |
Basic algorithm for getting all affected basis functions.
This implicitly assumes a tensor-product approach and local support. No grid points on the border are supported.
|
inlineexplicit |
|
inline |
|
inline |
Returns evaluations of all basis functions that are non-zero at a given evaluation point.
For a given evaluation point \(x\), it stores tuples (std::pair) of \((i,\phi_i(x))\) in the result vector for all basis functions that are non-zero. If one wants to evaluate \(f_N(x)\), one only has to compute
\[ \sum_{r\in\mathbf{result}} \alpha[r\rightarrow\mathbf{first}] \cdot r\rightarrow\mathbf{second}. \]
basis | a sparse grid basis |
point | evaluation point within the domain |
alpha | the coefficient of the regarded ansatzfunction |
result | vector that will contain the local support of the given ansatzfuction for all evaluations points |
References chess::dim, sgpp::base::HashGridStorage::getBoundingBox(), sgpp::base::HashGridStorage::getDimension(), sgpp::base::BoundingBox::isContainingPoint(), sgpp::base::AlgorithmEvaluationTransposed< BASIS >::rec(), sgpp::base::AlgorithmEvaluationTransposed< BASIS >::storage, and sgpp::base::BoundingBox::transformPointToUnitCube().
|
inlineprotected |
Recursive traversal of the "tree" of basis functions for evaluation, used in operator().
For a given evaluation point \(x\), it stores tuples (std::pair) of \((i,\phi_i(x))\) in the result vector for all basis functions that are non-zero.
basis | a sparse grid basis |
point | evaluation point within the domain |
current_dim | the dimension currently looked at (recursion parameter) |
value | the value of the evaluation of the current basis function up to (excluding) dimension current_dim (product of the evaluations of the one-dimensional ones) |
working | iterator working on the GridStorage of the basis |
source | array of indices for each dimension (identifying the indices of the current grid point) |
alpha | the coefficient of current ansatzfunction |
result | vector that will contain the local support of the given ansatzfuction for all evaluations points |
References sgpp::base::HashGridIterator::get(), sgpp::base::HashGridStorage::getDimension(), sgpp::base::HashGridIterator::hint(), sgpp::base::HashGridStorage::isInvalidSequenceNumber(), sgpp::base::HashGridIterator::leftChild(), sgpp::base::HashGridIterator::resetToLevelOne(), sgpp::base::HashGridIterator::rightChild(), and sgpp::base::HashGridIterator::seq().
Referenced by sgpp::base::AlgorithmEvaluationTransposed< BASIS >::operator()().
|
protected |