************80
! L2KNTS converts breakpoints to knots.
Discussion:
The breakpoint sequence BREAK is converted into a corresponding
knot sequence T to allow the representation of a piecewise
polynomial function of order K with K-2 continuous derivatives
as a spline of order K with knot sequence T.
This means that T(1:N+K) = BREAK(1) K times, then BREAK(2:L),
then BREAK(L+1) K times.
Therefore, N = K - 1 + L.
Modified:
14 February 2007
Author:
Carl DeBoor
Reference:
Carl DeBoor,
A Practical Guide to Splines,
Springer, 2001,
ISBN: 0387953663,
LC: QA1.A647.v27.
Parameters:
Input, integer ( kind = 4 ) K, the order.
Input, integer ( kind = 4 ) L, the number of polynomial pieces.
Input, real ( kind = 8 ) BREAK(L+1), the breakpoint sequence.
Output, real ( kind = 8 ) T(N+K), the knot sequence.
Output, integer ( kind = 4 ) N, the dimension of the corresponding spline
space of order K.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=8) | :: | break(l+1) | ||||
integer(kind=4) | :: | l | ||||
integer(kind=4) | :: | k | ||||
real(kind=8) | :: | t(k-1+l+k) | ||||
integer(kind=4) | :: | n |
subroutine l2knts ( break, l, k, t, n ) !*****************************************************************************80 ! !! L2KNTS converts breakpoints to knots. ! ! Discussion: ! ! The breakpoint sequence BREAK is converted into a corresponding ! knot sequence T to allow the representation of a piecewise ! polynomial function of order K with K-2 continuous derivatives ! as a spline of order K with knot sequence T. ! ! This means that T(1:N+K) = BREAK(1) K times, then BREAK(2:L), ! then BREAK(L+1) K times. ! ! Therefore, N = K - 1 + L. ! ! Modified: ! ! 14 February 2007 ! ! Author: ! ! Carl DeBoor ! ! Reference: ! ! Carl DeBoor, ! A Practical Guide to Splines, ! Springer, 2001, ! ISBN: 0387953663, ! LC: QA1.A647.v27. ! ! Parameters: ! ! Input, integer ( kind = 4 ) K, the order. ! ! Input, integer ( kind = 4 ) L, the number of polynomial pieces. ! ! Input, real ( kind = 8 ) BREAK(L+1), the breakpoint sequence. ! ! Output, real ( kind = 8 ) T(N+K), the knot sequence. ! ! Output, integer ( kind = 4 ) N, the dimension of the corresponding spline ! space of order K. ! implicit none integer ( kind = 4 ) k integer ( kind = 4 ) l integer ( kind = 4 ) n real ( kind = 8 ) break(l+1) real ( kind = 8 ) t(k-1+l+k) n = k - 1 + l t(1:k-1) = break(1) t(k:n) = break(1:l) t(n+1:n+k) = break(l+1) return end subroutine l2knts