Computes the integral on (x1,x2)
of a kx
-th order b-spline.
Orders kx
as high as 20 are permitted by applying a 2, 6, or 10
point gauss formula on subintervals of (x1,x2)
which are
formed by included (distinct) knots.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=wp), | intent(in), | dimension(nx+kx) | :: | tx |
knot array |
|
real(kind=wp), | intent(in), | dimension(nx) | :: | bcoef |
b-spline coefficient array |
|
integer(kind=ip), | intent(in) | :: | nx |
length of coefficient array |
||
integer(kind=ip), | intent(in) | :: | kx |
order of b-spline, |
||
real(kind=wp), | intent(in) | :: | x1 |
left point of quadrature interval in |
||
real(kind=wp), | intent(in) | :: | x2 |
right point of quadrature interval in |
||
real(kind=wp), | intent(out) | :: | f |
integral of the b-spline over ( |
||
integer(kind=ip), | intent(out) | :: | iflag |
status flag:
|
||
real(kind=wp), | intent(inout), | dimension(3*kx) | :: | w0 |
work array for dbsqad |
pure subroutine db1sqad(tx,bcoef,nx,kx,x1,x2,f,iflag,w0) implicit none integer(ip),intent(in) :: nx !! length of coefficient array integer(ip),intent(in) :: kx !! order of b-spline, `1 <= k <= 20` real(wp),dimension(nx+kx),intent(in) :: tx !! knot array real(wp),dimension(nx),intent(in) :: bcoef !! b-spline coefficient array real(wp),intent(in) :: x1 !! left point of quadrature interval in `t(kx) <= x <= t(nx+1)` real(wp),intent(in) :: x2 !! right point of quadrature interval in `t(kx) <= x <= t(nx+1)` real(wp),intent(out) :: f !! integral of the b-spline over (`x1`,`x2`) integer(ip),intent(out) :: iflag !! status flag: !! !! * \( = 0 \) : no errors !! * \( \ne 0 \) : error real(wp),dimension(3*kx),intent(inout) :: w0 !! work array for [[dbsqad]] call dbsqad(tx,bcoef,nx,kx,x1,x2,f,w0,iflag) end subroutine db1sqad