|
| Quad (char *grid_type, char *fs_type, int ndim, int param, double alpha=0.0, double betta=1.0) |
| Constructor: initializes the rule type, sparseness type, dimensionality, level or ppd parameter, and two optional parameters for quadrature rule.
|
|
| Quad (Array1D< string > &grid_types, char *fs_type, Array1D< int > ¶m, Array1D< double > &alphas, Array1D< double > &bettas) |
| Constructor, overloaded for dimension-unisotropy: initializes the dimension-specific rule types, sparseness type, dimension-specific ppd or level, and two optional parameters for quadrature rule per each dimension.
|
|
| Quad () |
| Constructor: empty.
|
|
| ~Quad () |
| Destructor.
|
|
void | init () |
| Initialization function.
|
|
void | SetAlpha (double alpha) |
| Set the parameter alpha.
|
|
void | SetBeta (double betta) |
| Set the parameter beta.
|
|
void | SetDomain (Array1D< double > &aa, Array1D< double > &bb) |
| Set the domain endpoints (for compact support domains)
|
|
void | SetDomain (Array1D< double > &aa) |
| Set the domain endpoint (for semi-infinite domains)
|
|
void | GetDomain (Array1D< double > &aa, Array1D< double > &bb) const |
| Get the domain endpoints (for compact support domains)
|
|
void | GetDomain (Array1D< double > &aa) const |
| Get the domain endpoint (for semi-infinite domains)
|
|
void | SetRule (Array2D< double > &q, Array1D< double > &w) |
| Set the rule externally (only quadrature points and weights)
|
|
void | SetRule (Array2D< double > &q, Array1D< double > &w, Array2D< int > &ind) |
| Set the rule externally (quadrature points, weights and indices) Dummy function for backward compatibility.
|
|
void | SetRule () |
| Set the rule externally (quadrature points, weights, indices, and the level)
|
|
void | GetRule (Array2D< double > &q, Array1D< double > &w) |
| Get the quadrature rule.
|
|
void | GetRule (Array2D< double > &q, Array1D< double > &w, Array2D< int > &ind) |
| Get the quadrature rule with indexing Dummy function for backward compatibility.
|
|
void | SetQdpts (Array2D< double > &q) |
| Externally set quadrature points.
|
|
void | SetWghts (Array1D< double > &w) |
| Externally set the weights.
|
|
void | GetQdpts (Array2D< double > &q) |
| Externally set the indices.
|
|
void | GetWghts (Array1D< double > &w) |
| Get the weights.
|
|
void | SetLevel (int param) |
| Get the indices.
|
|
void | nextLevel () |
| Compute the indices of the next-level points.
|
|
int | GetNQ () |
| Get the number of quadrature points.
|
|
void | SetVerbosity (int verbosity) |
| Set the verbosity level.
|
|
|
| Quad (const Quad &) |
| Dummy copy constructor, which should not be used as it is currently not well defined.
|
|
void | MultiplyTwoRules (QuadRule *rule1, QuadRule *rule2, QuadRule *rule_prod) |
| Multiply two rules (full tensor product)
|
|
void | MultiplyManyRules (int nrules, QuadRule *rules, QuadRule *rule_prod) |
| Multiply many rules (full tensor product)
|
|
void | MultiplyManyRules_ (int nrules, QuadRule *rules, QuadRule *rule_prod) |
|
void | AddTwoRules (QuadRule *rule1, QuadRule *rule2, QuadRule *rule_sum) |
| Add two rules.
|
|
void | SubtractTwoRules (QuadRule *rule1, QuadRule *rule2, QuadRule *rule_sum) |
| Subtract two rules.
|
|
void | create1DRule (string gridtype, Array1D< double > &qdpts, Array1D< double > &wghts, int ngr, double a, double b) |
| Compute 1D rules.
|
|
void | create1DRule_CC (Array1D< double > &qdpts, Array1D< double > &wghts, int ngr, double a, double b) |
| Clenshaw-Curtis (includes the endpoints)
|
|
void | create1DRule_LU (Array1D< double > &qdpts, Array1D< double > &wghts, int ngr, double a, double b) |
| Legendre-Uniform.
|
|
void | create1DRule_HG (Array1D< double > &qdpts, Array1D< double > &wghts, int ngr) |
| Gauss-Hermite.
|
|
void | create1DRule_NC (Array1D< double > &qdpts, Array1D< double > &wghts, int ngr, double a, double b) |
| Newton-Cotes (i.e. equispaced, includes the endpoints)
|
|
void | create1DRule_NCO (Array1D< double > &qdpts, Array1D< double > &wghts, int ngr, double a, double b) |
| Newton-Cotes open (i.e. excludes the endpoints)
|
|
void | create1DRule_CCO (Array1D< double > &qdpts, Array1D< double > &wghts, int ngr, double a, double b) |
| Clenshaw-Curtis open (i.e. excludes the endpoints)
|
|
void | create1DRule_JB (Array1D< double > &qdpts, Array1D< double > &wghts, int ngr, double a, double b) |
| Jacobi-Beta.
|
|
void | create1DRule_LG (Array1D< double > &qdpts, Array1D< double > &wghts, int ngr) |
| Gamma-Laguerre.
|
|
void | create1DRule_SW (Array1D< double > &qdpts, Array1D< double > &wghts, int ngr) |
| Stieltjes-Wigert.
|
|
void | create1DRule_pdf (Array1D< double > &qdpts, Array1D< double > &wghts, int ngr, double a, double b) |
| Custom rule given the recursive coefficients of the corresponding orthogonal polynomials.
|
|
void | create1DRule_GP3 (Array1D< double > &qdpts, Array1D< double > &wghts, int ngr, double a, double b) |
| Gauss-Patterson starting with Legendre-Uniform 3.
|
|
void | getMultiIndexLevel (Array2D< int > &multiIndexLevel, int level, int ndim) |
| Auxilliary function: get the level of the multi-index.
|
|
void | compressRule (QuadRule *rule) |
| Compress the rule, i.e. merge repeating points.
|
|
|
Array1D< double > | aa_ |
| The left endpoints of the domain.
|
|
Array1D< double > | bb_ |
| the right endpoints of the domain
|
|
int | quadverbose_ |
| Verbosity level.
|
|
double | alpha_ |
| The first parameter of the rule, if any.
|
|
double | beta_ |
| The second parameter of the rule, if any.
|
|
Array1D< double > | alphas_ |
| The first parameter of the rule, if any.
|
|
Array1D< double > | betas_ |
| The second parameter of the rule, if any.
|
|
QuadRule | rule_ |
| The quadrature rule structure.
|
|
int | ndim_ |
| The dimensionality.
|
|
int | nlevel_ |
| The current level, working variable for hierarchical construction.
|
|
int | maxlevel_ |
| The level for sparse rules, or the number of grid points per dim for full product rules.
|
|
Array1D< int > | param_ |
|
Array2D< int > | npts_all |
| Working arrays.
|
|
Array2D< int > | npts_1_all |
|
Array2D< QuadRule > | qr_all |
|
Array2D< QuadRule > | qr_1_all |
|
int | growth_rule_ |
| Growth rule: exponential(0) or linear(1)
|
|
Array1D< int > | growth_rules_ |
| Growth rules: exponential(0) or linear(1)
|
|
string | grid_type_ |
| Grid type: 'CC','CCO','NC','NCO','LU', 'HG', 'JB', 'LG', 'SW', 'pdf', or 'GP3'.
|
|
Array1D< string > | grid_types_ |
| Vector of grid types: 'CC','CCO','NC','NCO','LU', 'HG', 'JB', 'LG', 'SW', 'pdf', or 'GP3'.
|
|
string | fs_type_ |
| Sparseness type (full or sparse)
|
|
Generates quadrature rules.
- Note
- Besides quadrature rules corresponding to PC bases (i.e. LU, HG, LG, SW, JB), Clenshaw-Curtis(CC) and Newton-Cotes(NC) as well as their Open (with no endpoints) versions (CCO, NCO) are implemented. Also, Gauss-Patterson (GP3) and custom (pdf) rules are added.
Grid type: 'CC','CCO','NC','NCO','LU', 'HG', 'JB', 'LG', 'SW', 'pdf', or 'GP3'.
Vector of grid types: 'CC','CCO','NC','NCO','LU', 'HG', 'JB', 'LG', 'SW', 'pdf', or 'GP3'.