28 void make_quadrature(std::vector<T> &a, std::vector<T> &b,
const T mu0, std::vector<T> &x, std::vector<T> &w)
30 const size_t n = a.size();
31 if (b.size() != n)
throw std::runtime_error(
"The size of b must be a.size().");
36 for (
size_t i = 1; i < n; ++i) {
37 b[i - 1] = std::sqrt(b[i - 1]);
41 for (
size_t i = 0; i < n; i++) {
57 const std::vector<NT> &
nodes()
const;
Definition quadrature.hh:50
const NT * device_weights()
void reinit(const size_t order, const QuadratureType _t)
thrust::device_vector< NT > m_device_weights
Definition quadrature.hh:74
const std::vector< NT > & nodes() const
Quadrature(const size_t order, const QuadratureType _t)
uint order
Definition quadrature.hh:68
QuadratureType get_type() const
std::vector< NT > m_nodes
Definition quadrature.hh:70
const std::vector< NT > & weights() const
std::vector< NT > m_weights
Definition quadrature.hh:71
QuadratureType _t
Definition quadrature.hh:67
thrust::device_vector< NT > m_device_nodes
Definition quadrature.hh:73
const NT * device_nodes()
Definition complex_math.hh:14
constexpr __forceinline__ __host__ __device__ NumberType powr(const NumberType x)
A compile-time evaluatable power function for whole number exponents.
Definition math.hh:45
void make_quadrature(std::vector< T > &a, std::vector< T > &b, const T mu0, std::vector< T > &x, std::vector< T > &w)
Obtain the quadrature rule from a given three-term recurrence relation.
Definition quadrature.hh:28
QuadratureType
Definition quadrature.hh:47
unsigned int uint
Definition utils.hh:22
void diagonalize_tridiagonal_symmetric_matrix(std::vector< T > &d, std::vector< T > &e, std::vector< T > &z)
Diagonalizes a symmetric tridiagonal matrix.
Definition diagonalization.hh:35