31#ifndef __TASMANIAN_SPARSE_GRID_WAVELET_RULE_HPP
32#define __TASMANIAN_SPARSE_GRID_WAVELET_RULE_HPP
34#include "tsgGridCore.hpp"
39#ifndef __TASMANIAN_DOXYGEN_SKIP
42 RuleWavelet(
int corder,
int iter_depth) : order(0), iteration_depth(iter_depth), num_data_points((1 << iteration_depth) + 1){
45 ~RuleWavelet() =
default;
48 int getNumPoints(
int level)
const;
50 const char* getDescription()
const;
52 double getNode(
int point)
const;
54 void updateOrder(
int new_order);
56 double getWeight(
int point)
const;
61 template<
int mode>
double eval(
int point,
double x)
const;
63 int getLevel(
int point)
const;
64 void getChildren(
int point,
int &first,
int &second)
const;
65 int getParent(
int point)
const;
67 void getShiftScale(
int point,
double &scale,
double &shift)
const;
69 double getSupport(
int point)
const;
71 template<
int mode>
inline double eval_linear(
int pt,
double x)
const;
72 template<
int mode>
inline double eval_cubic(
int pt,
double x)
const;
73 template<
int mode>
inline double linear_boundary_wavelet(
double x,
bool right)
const;
74 template<
int mode>
inline double linear_central_wavelet(
double x,
bool right)
const;
78 static void cubic_cascade(
double *y,
int starting_level,
int iteration_depth);
80 inline int find_index(
double x)
const;
81 template<
int mode>
inline double interpolate(
const double y[],
double x)
const;
83 std::vector<std::vector<double>> data;
84 std::vector<double> cachexs;
Encapsulates the Tasmanian Sparse Grid module.
Definition TasmanianSparseGrid.hpp:68