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

Orthogonal polynomial evaluation, spectral nodes, weights, and differentiation matrices. More...

#include "janus/core/JanusError.hpp"
#include "janus/core/JanusTypes.hpp"
#include <cmath>
#include <limits>
#include <utility>
Include dependency graph for OrthogonalPolynomials.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

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

Functions

std::pair< double, double > janus::legendre_poly (int n, double x)
 Evaluate Legendre polynomial P_n(x) and derivative P'_n(x).
std::pair< NumericVector, NumericVectorjanus::detail::gauss_legendre_rule (int n)
std::pair< NumericVector, NumericVectorjanus::gauss_legendre_rule (int n)
 Gauss-Legendre nodes and weights on [-1, 1].
NumericVector janus::legendre_poly_vec (int n, const NumericVector &x)
 Evaluate P_n(x) at each x in vector.
NumericVector janus::lgl_nodes (int N)
 Compute Legendre-Gauss-Lobatto nodes on [-1, 1].
NumericVector janus::cgl_nodes (int N)
 Compute Chebyshev-Gauss-Lobatto nodes on [-1, 1].
NumericVector janus::lgl_weights (int N, const NumericVector &nodes)
 LGL quadrature weights.
NumericVector janus::cgl_weights (int N, const NumericVector &nodes)
 CGL (Clenshaw-Curtis) quadrature weights on [-1, 1].
NumericVector janus::barycentric_weights (const NumericVector &nodes)
 Compute barycentric interpolation weights for the given nodes.
double janus::barycentric_basis_eval (const NumericVector &nodes, const NumericVector &bary_w, int j, double s)
 Evaluate the j-th Lagrange basis polynomial at s using barycentric form.
NumericMatrix janus::birkhoff_integration_matrix (const NumericVector &nodes)
 Compute Birkhoff integration matrix B^a for the node set.
NumericMatrix janus::spectral_diff_matrix (const NumericVector &nodes)
 Spectral differentiation matrix using barycentric weights.

Variables

constexpr double janus::detail::polynomial_root_tolerance = 1e-15
 Tolerance for zero-length integration intervals in Birkhoff matrix.

Detailed Description

Orthogonal polynomial evaluation, spectral nodes, weights, and differentiation matrices.

See also
PolynomialChaos.hpp, Quadrature.hpp