Janus 2.0.0
High-performance C++20 dual-mode numerical framework
Loading...
Searching...
No Matches
Quadrature.hpp File Reference

Stochastic quadrature rules (Gauss, Clenshaw-Curtis, Smolyak sparse grids). More...

#include "janus/core/JanusConcepts.hpp"
#include "janus/core/JanusError.hpp"
#include "janus/core/JanusTypes.hpp"
#include "janus/math/OrthogonalPolynomials.hpp"
#include "janus/math/PolynomialChaos.hpp"
#include <Eigen/Eigenvalues>
#include <array>
#include <cmath>
#include <cstdint>
#include <functional>
#include <limits>
#include <map>
#include <numeric>
#include <string>
#include <utility>
#include <vector>
Include dependency graph for Quadrature.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  janus::UnivariateQuadratureRule
 One-dimensional stochastic quadrature rule on a probability measure. More...
struct  janus::StochasticQuadratureGrid
 Multidimensional stochastic quadrature grid with row-major sample layout. More...
struct  janus::SmolyakQuadratureOptions
 Options for Smolyak sparse-grid construction. More...
struct  janus::detail::EmbeddedQuadratureRule

Namespaces

namespace  janus
namespace  janus::detail
 Smooth approximation of ReLU function: softplus(x) = (1/beta) * log(1 + exp(beta * x)).

Enumerations

enum class  janus::StochasticQuadratureRule { janus::Gauss , janus::ClenshawCurtis , janus::GaussKronrod15 , janus::AutoNested }
 One-dimensional rule family used to generate stochastic quadrature nodes. More...

Functions

const EmbeddedQuadratureRulejanus::detail::gauss_kronrod_15_rule ()
void janus::detail::validate_order (int order, const std::string &context)
void janus::detail::validate_level (int level, const std::string &context)
double janus::detail::binomial (int n, int k)
int janus::detail::clenshaw_curtis_order_from_level (int level)
int janus::detail::gauss_order_from_level (int level)
bool janus::detail::is_bounded_support (const PolynomialChaosDimension &dimension)
double janus::detail::standard_normal_moment (int degree)
double janus::detail::shifted_beta_moment (int degree, double alpha, double beta)
double janus::detail::probability_moment (const PolynomialChaosDimension &dimension, int degree)
NumericVector janus::detail::clenshaw_curtis_probability_weights (const PolynomialChaosDimension &dimension, const NumericVector &nodes)
UnivariateQuadratureRule janus::detail::make_gauss_from_jacobi_matrix (const NumericVector &diag, const NumericVector &offdiag, int level)
UnivariateQuadratureRule janus::detail::gauss_rule (const PolynomialChaosDimension &dimension, int order, int level)
UnivariateQuadratureRule janus::detail::gauss_kronrod_rule (const PolynomialChaosDimension &dimension, int order, int level)
UnivariateQuadratureRule janus::detail::clenshaw_curtis_rule (const PolynomialChaosDimension &dimension, int order, int level)
std::vector< std::vector< int > > janus::detail::positive_compositions (int dim, int sum)
std::string janus::detail::sample_key (const NumericVector &point, double tolerance)
UnivariateQuadratureRule janus::stochastic_quadrature_rule (const PolynomialChaosDimension &dimension, int order, StochasticQuadratureRule rule=StochasticQuadratureRule::Gauss)
 Build a one-dimensional stochastic quadrature rule with a fixed order.
UnivariateQuadratureRule janus::stochastic_quadrature_level (const PolynomialChaosDimension &dimension, int level, StochasticQuadratureRule rule=StochasticQuadratureRule::AutoNested)
 Build a one-dimensional stochastic quadrature rule from a refinement level.
StochasticQuadratureGrid janus::tensor_product_quadrature (const std::vector< UnivariateQuadratureRule > &rules)
 Build the tensor-product grid from a list of one-dimensional rules.
StochasticQuadratureGrid janus::smolyak_sparse_grid (const std::vector< PolynomialChaosDimension > &dimensions, int level, SmolyakQuadratureOptions options={})
 Build a Smolyak sparse grid on probability measures.
template<JanusScalar Scalar>
JanusVector< Scalar > janus::pce_projection_coefficients (const PolynomialChaosBasis &basis, const UnivariateQuadratureRule &rule, const JanusVector< Scalar > &sample_values)
 Compute PCE projection coefficients using a univariate quadrature rule (vector).
template<JanusScalar Scalar>
JanusMatrix< Scalar > janus::pce_projection_coefficients (const PolynomialChaosBasis &basis, const UnivariateQuadratureRule &rule, const JanusMatrix< Scalar > &sample_values)
 Compute PCE projection coefficients using a univariate quadrature rule (matrix).
template<JanusScalar Scalar>
JanusVector< Scalar > janus::pce_projection_coefficients (const PolynomialChaosBasis &basis, const StochasticQuadratureGrid &grid, const JanusVector< Scalar > &sample_values)
 Compute PCE projection coefficients using a stochastic quadrature grid (vector).
template<JanusScalar Scalar>
JanusMatrix< Scalar > janus::pce_projection_coefficients (const PolynomialChaosBasis &basis, const StochasticQuadratureGrid &grid, const JanusMatrix< Scalar > &sample_values)
 Compute PCE projection coefficients using a stochastic quadrature grid (matrix).

Detailed Description

Stochastic quadrature rules (Gauss, Clenshaw-Curtis, Smolyak sparse grids).

See also
PolynomialChaos.hpp, OrthogonalPolynomials.hpp