![]()  | 
  
    SG++-Doxygen-Documentation
    
   | 
 
Class that implements the transformation of a hierarchical prewavelet sparse grid to a hierarchical linear sparse grid. More...
#include <ConvertPrewaveletToLinear.hpp>
Public Member Functions | |
| ConvertPrewaveletToLinear (GridStorage &storage) | |
| Constructor, must be bind to a grid.  More... | |
| void | operator() (DataVector &source, DataVector &result, grid_iterator &index, size_t dim) | 
| Converts a given prewavelet base to a normal linear base.  More... | |
| ~ConvertPrewaveletToLinear () | |
| Destructor.  More... | |
Protected Types | |
| typedef GridStorage::grid_iterator | grid_iterator | 
| typedef index_t | index_type | 
| typedef level_t | level_type | 
Protected Attributes | |
| GridStorage & | storage | 
| the grid object  More... | |
Class that implements the transformation of a hierarchical prewavelet sparse grid to a hierarchical linear sparse grid.
Therefore the ()operator is implemented in order to use the sweep algorithm for the grid traversal. Let the coefficients from the hat basis be \( h_{l,i}\) and from the prewavelet basis \( u_{l,i} \). To calculate the surplusses, temp values are needed:
\[ (l,i)\neq G_{n}^{1}:t_{l,i}=-\frac{6}{10}u_{l,i\pm1}+t_{l+1,2i} \]
All temp values for levels greater than the maximal level of the grid are set to 0. The actual transformation is calculated as follows:
\begin{eqnarray*} h_{l,i}&=&u_{l,i}+\frac{1}{10}u_{l,i\pm2}+t_{l+1,2i}-\frac{1}{2}t_{l,i\pm1}\qquad\mbox{if \ensuremath{(l,i)} is an inner point}\\h_{l,i}&=&\frac{9}{10}u_{l,i}+\frac{1}{10}u_{l,i\pm2}+t_{l+1,2i}-\frac{1}{2}t_{l,i\pm1}\qquad\mbox{if \ensuremath{(l,i)} is at border} \end{eqnarray*}
The picture depicts all needed variables in oder to perform the transformation:
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  explicit | 
Constructor, must be bind to a grid.
| storage | the grid storage object of the the grid, on which the hierarchisation should be executed | 
| sgpp::base::ConvertPrewaveletToLinear::~ConvertPrewaveletToLinear | ( | ) | 
Destructor.
| void sgpp::base::ConvertPrewaveletToLinear::operator() | ( | DataVector & | source, | 
| DataVector & | result, | ||
| grid_iterator & | index, | ||
| size_t | dim | ||
| ) | 
Converts a given prewavelet base to a normal linear base.
References sgpp::base::HashGridIterator::get(), sgpp::base::HashGridIterator::getGridDepth(), python.statsfileInfo::i, sgpp::base::HashGridStorage::isInvalidSequenceNumber(), level, sgpp::base::HashGridIterator::seq(), sgpp::base::HashGridIterator::set(), and storage.
      
  | 
  protected | 
the grid object
Referenced by operator()().