WaveBlocksND
Public Types | Static Public Member Functions | Static Public Attributes | Static Private Member Functions | Static Private Attributes | List of all members
waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL > Struct Template Reference

Structure providing weighted nodes for Genz-Keister quadrature. More...

#include <genz_keister_qr.hpp>

Public Types

using NodeMatrix = Eigen::Matrix< real_t, DIM, Eigen::Dynamic >
 
using WeightVector = Eigen::Matrix< real_t, 1, Eigen::Dynamic >
 

Static Public Member Functions

static dim_t number_nodes ()
 Return the number of nodes for the given order. More...
 
static NodeMatrix nodes ()
 Return the quadrature nodes. More...
 
static WeightVector weights ()
 Return the quadrature weights. More...
 
static std::tuple< NodeMatrix, WeightVectornodes_and_weights ()
 Return the quadrature nodes and weights. More...
 
static void clear_cache ()
 Free the precalculated nodes and weights. More...
 

Static Public Attributes

static const dim_t D = DIM
 
static const dim_t level = LEVEL
 

Static Private Member Functions

static void calculate_nodes_and_weights ()
 Precalculate nodes and weights. More...
 
static NodeMatrix nodes_for_partition (const math::partition_t< DIM > &part)
 Return fully symmetric quadrature nodes for given partition. More...
 
static real_t weight_for_partition (const math::partition_t< DIM > &part)
 Return quadrature weight for given partition. More...
 

Static Private Attributes

static bool cached = false
 
static NodeMatrix cached_nodes
 
static WeightVector cached_weights
 

Detailed Description

template<dim_t DIM, dim_t LEVEL>
struct waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL >

Structure providing weighted nodes for Genz-Keister quadrature.

Template Parameters
DIMdimensionality of the Genz-Keister rule
LEVELthe level of the Genz-Keister rule, must be between 1 and 30 inclusive

Member Typedef Documentation

template<dim_t DIM, dim_t LEVEL>
using waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL >::NodeMatrix = Eigen::Matrix<real_t,DIM,Eigen::Dynamic>
template<dim_t DIM, dim_t LEVEL>
using waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL >::WeightVector = Eigen::Matrix<real_t,1,Eigen::Dynamic>

Member Function Documentation

template<dim_t DIM, dim_t LEVEL>
static void waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL >::calculate_nodes_and_weights ( )
inlinestaticprivate

Precalculate nodes and weights.

template<dim_t DIM, dim_t LEVEL>
static void waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL >::clear_cache ( )
inlinestatic

Free the precalculated nodes and weights.

template<dim_t DIM, dim_t LEVEL>
static NodeMatrix waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL >::nodes ( )
inlinestatic

Return the quadrature nodes.

template<dim_t DIM, dim_t LEVEL>
static std::tuple<NodeMatrix,WeightVector> waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL >::nodes_and_weights ( )
inlinestatic

Return the quadrature nodes and weights.

template<dim_t DIM, dim_t LEVEL>
static NodeMatrix waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL >::nodes_for_partition ( const math::partition_t< DIM > &  part)
inlinestaticprivate

Return fully symmetric quadrature nodes for given partition.

Parameters
[in]partpartition
template<dim_t DIM, dim_t LEVEL>
static dim_t waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL >::number_nodes ( )
inlinestatic

Return the number of nodes for the given order.

template<dim_t DIM, dim_t LEVEL>
static real_t waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL >::weight_for_partition ( const math::partition_t< DIM > &  part)
inlinestaticprivate

Return quadrature weight for given partition.

Parameters
[in]partpartition
template<dim_t DIM, dim_t LEVEL>
static WeightVector waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL >::weights ( )
inlinestatic

Return the quadrature weights.

Member Data Documentation

template<dim_t DIM, dim_t LEVEL>
bool waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL >::cached = false
staticprivate
template<dim_t DIM, dim_t LEVEL>
GenzKeisterQR< DIM, LEVEL >::NodeMatrix waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL >::cached_nodes
staticprivate
template<dim_t DIM, dim_t LEVEL>
GenzKeisterQR< DIM, LEVEL >::WeightVector waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL >::cached_weights
staticprivate
template<dim_t DIM, dim_t LEVEL>
const dim_t waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL >::D = DIM
static
template<dim_t DIM, dim_t LEVEL>
const dim_t waveblocks::innerproducts::GenzKeisterQR< DIM, LEVEL >::level = LEVEL
static

The documentation for this struct was generated from the following file: