39 : bspline_(bspline) {}
107 if (x1.real() < bspline_.
t(iknot).real() or bspline_.
t(iknot+1).real() < x1.real() or
108 x2.real() < bspline_.
t(iknot).real() or bspline_.
t(iknot+1).real() < x2.real())
110 throw exception (
"[quad] Error: boundaries not for this iknot!");
119 f(points, xs.
data(), values.
data(), data...);
127 for (
int ipt = 0; ipt < points; ipt++)
128 result += pw[ipt] * py[ipt];
145 ClassPtr ptr, Functor f,
int points,
int iknot,
Complex x1,
Complex x2, Data... data
148 if (x1.real() < bspline_.
t(iknot).real() or bspline_.
t(iknot+1).real() < x1.real() or
149 x2.real() < bspline_.
t(iknot).real() or bspline_.
t(iknot+1).real() < x2.real())
151 throw exception (
"[quad] Error: boundaries not for this iknot!");
160 (ptr->*f)(points, xs.
data(), values.
data(), data...);
168 for (
int ipt = 0; ipt < points; ipt++)
169 result += pw[ipt] * py[ipt];
180 static std::vector<std::pair<double*,double*>> data_;
virtual T * data()
Data pointer.
Definition: arrays.h:757
cArray p_weights(int points, Complex x1, Complex x2) const
Get Gauss-Legendre quadrature weights in interval.
Definition: gauss.cpp:94
int gauss_nodes_and_weights(int points, const double *&vx, const double *&vw) const
Retrieve Gauss-Legendre data.
Definition: gauss.cpp:29
A comfortable number array class.
Definition: arrays.h:171
Complex const & t(int i) const
B-spline knot sequence.
Definition: bspline.h:186
B-spline environment.
Definition: bspline.h:35
#define restrict
Definition: misc.h:88
Gauss-Legendre quadrature.
Definition: gauss.h:33
Complex quad(Functor f, int points, int iknot, Complex x1, Complex x2, Data...data) const
Gauss-Legendre integrator.
Definition: gauss.h:101
Complex quadMFP(ClassPtr ptr, Functor f, int points, int iknot, Complex x1, Complex x2, Data...data) const
Gauss-Legendre integrator.
Definition: gauss.h:144
GaussLegendre(Bspline const &bspline)
Definition: gauss.h:38
std::complex< double > Complex
Definition: complex.h:20
cArray p_points(int points, Complex x1, Complex x2) const
Get Gauss-Legendre quadrature points in interval.
Definition: gauss.cpp:73