aboutsummaryrefslogtreecommitdiff
path: root/math/deboor/l2knts.f
blob: 5f11b1e494febec4f110c29c513df99a62e46a81 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
subroutine l2knts ( break, l, k, t, n )
c  from  * a practical guide to splines *  by c. de boor
c  to be called in main program  l 2 m a i n .
converts the breakpoint sequence  b r e a k   into a corresponding knot
c  sequence  t	to allow the repr. of a pp function of order  k  with
c  k-2 continuous derivatives as a spline of order  k  with knot
c  sequence  t . this means that
c  t(1), ..., t(n+k) =	break(1) k times, then break(i), i=2,...,l, each
c			once, then break(l+1) k times .
c  therefore,  n = k-1 + l.
c
c******  i n p u t  ******
c  k	 the order
c  l	 the number of polynomial pieces
c  break(1), ...,break(l+1)  the breakpoint sequence
c
c******  o u t p u t  ******
c  t(1),...,t(n+k)   the knot sequence
c  n	 the dimension of the corresp. spline space of order  k .
c
      integer k,l,n,   i,km1
      real break(1),t(1)
c     dimension break(l+1),t(n+k)
      km1 = k - 1
      do 5 i=1,km1
    5	 t(i) = break(1)
      do 6 i=1,l
    6	 t(km1+i) = break(i)
      n = km1 + l
      do 7 i=1,k
    7	 t(n+i) = break(l+1)
					return
      end