Series expansion class for multiplicative kernel functions Precomputes constants for O(p^D) expansions. More...
Public Member Functions | |
void | ComputeFactorials () |
void | ComputeLowerMappingIndex () |
void | ComputeMultiindexCombination () |
int | ComputeMultiindexPosition (const ArrayList< int > &multiindex) const |
Computes the position of the given multiindex. | |
void | ComputeTraversalMapping () |
void | ComputeUpperMappingIndex () |
double | DirectLocalAccumulationCost (int order) const |
Computes the computational cost of directly accumulating a single reference point into a local moment of order p. | |
double | factorial (int k) const |
double | FarFieldEvaluationCost (int order) const |
Computes the computational cost of evaluating a far-field expansion of order p at a single query point. | |
double | FarFieldToLocalTranslationCost (int order) const |
Computes the compuational cost of translating a far-field moment of order p into a local moment of the same order. | |
int | get_dimension () const |
const Vector & | get_inv_multiindex_factorials () const |
const ArrayList< int > * | get_lower_mapping_index () const |
int | get_max_order () const |
int | get_max_total_num_coeffs () const |
const ArrayList< int > & | get_multiindex (int pos) const |
const ArrayList< int > * | get_multiindex_mapping () const |
double | get_n_choose_k (int n, int k) const |
double | get_n_multichoose_k_by_pos (int n, int k) const |
const Vector & | get_neg_inv_multiindex_factorials () const |
int | get_total_num_coeffs (int order) const |
const ArrayList< int > * | get_upper_mapping_index () const |
void | Init (int max_order, int dim) |
Initialize the auxiliary object with precomputed quantities for order up to max_order for the given dimensionality. | |
OT_DEF_BASIC (MultSeriesExpansionAux) | |
void | PrintDebug (const char *name="", FILE *stream=stderr) const |
Print useful information about this object. | |
Public Attributes | |
int | dim_ |
Vector | factorials_ |
Vector | inv_multiindex_factorials_ |
ArrayList< int > | list_total_num_coeffs_ |
ArrayList< ArrayList< int > > | lower_mapping_index_ |
for each i-th multiindex m_i, store the positions of the j-th multiindex mapping such that m_i - m_j >= 0 (the difference in all coordinates is nonnegative). | |
int | max_order_ |
Matrix | multiindex_combination_ |
ArrayList< ArrayList< int > > | multiindex_mapping_ |
Matrix | n_choose_k_ |
row index is for n, column index is for k | |
Vector | neg_inv_multiindex_factorials_ |
ArrayList< ArrayList< int > > | traversal_mapping_ |
For each i-th order, store the positions of the coefficient array to traverse. | |
ArrayList< ArrayList< int > > | upper_mapping_index_ |
for each i-th multiindex m_i, store the positions of the j-th multiindex mapping such that m_i - m_j <= 0 (the difference in all coordinates is nonpositive). |
Series expansion class for multiplicative kernel functions Precomputes constants for O(p^D) expansions.
Definition at line 44 of file mult_series_expansion_aux.h.
int MultSeriesExpansionAux::ComputeMultiindexPosition | ( | const ArrayList< int > & | multiindex | ) | const [inline] |
Computes the position of the given multiindex.
Definition at line 293 of file mult_series_expansion_aux.h.
Referenced by PrintDebug().
double MultSeriesExpansionAux::DirectLocalAccumulationCost | ( | int | order | ) | const [inline] |
Computes the computational cost of directly accumulating a single reference point into a local moment of order p.
Definition at line 321 of file mult_series_expansion_aux.h.
double MultSeriesExpansionAux::FarFieldEvaluationCost | ( | int | order | ) | const [inline] |
Computes the computational cost of evaluating a far-field expansion of order p at a single query point.
Definition at line 307 of file mult_series_expansion_aux.h.
double MultSeriesExpansionAux::FarFieldToLocalTranslationCost | ( | int | order | ) | const [inline] |
Computes the compuational cost of translating a far-field moment of order p into a local moment of the same order.
Definition at line 314 of file mult_series_expansion_aux.h.
void MultSeriesExpansionAux::Init | ( | int | max_order, | |
int | dim | |||
) | [inline] |
Initialize the auxiliary object with precomputed quantities for order up to max_order for the given dimensionality.
Definition at line 329 of file mult_series_expansion_aux.h.
References math::BinomialCoefficient(), ArrayList< TElem >::Init(), GenVector< T >::Init(), ArrayList< TElem >::InitCopy(), and n_choose_k_.
void MultSeriesExpansionAux::PrintDebug | ( | const char * | name = "" , |
|
FILE * | stream = stderr | |||
) | const [inline] |
Print useful information about this object.
Definition at line 416 of file mult_series_expansion_aux.h.
References ComputeMultiindexPosition(), and ArrayList< TElem >::size().
for each i-th multiindex m_i, store the positions of the j-th multiindex mapping such that m_i - m_j >= 0 (the difference in all coordinates is nonnegative).
Definition at line 69 of file mult_series_expansion_aux.h.
row index is for n, column index is for k
Definition at line 79 of file mult_series_expansion_aux.h.
Referenced by Init().
For each i-th order, store the positions of the coefficient array to traverse.
Definition at line 85 of file mult_series_expansion_aux.h.
for each i-th multiindex m_i, store the positions of the j-th multiindex mapping such that m_i - m_j <= 0 (the difference in all coordinates is nonpositive).
Definition at line 76 of file mult_series_expansion_aux.h.