chol1d Subroutine

subroutine chol1d(p, v, qty, npoint, ncol, u, qu)

************80

! CHOL1D sets up and solves linear systems needed by SMOOTH.

Discussion:

This routine constructs the upper three diagonals of

  V(I,J), I = 2 to NPOINT-1, J=1,3,

of the matrix

  6 * (1-P) * Q' * (D**2) * Q + P * R.

It then computes its L*L' decomposition and stores it also
in V, then applies forward and back substitution to the right hand side

  Q'*Y

in QTY to obtain the solution in U.

Modified:

16 February 2007

Author:

Carl DeBoor

Reference:

Carl DeBoor,
A Practical Guide to Splines,
Springer, 2001,
ISBN: 0387953663,
LC: QA1.A647.v27.

Parameters:

Input, real ( kind = 8 ) P, the smoothing parameter that defines 
the linear system.

Input/output, real ( kind = 8 ) V(NPOINT,7), contains data used
to define the linear system, some of which is determined by
routine SETUPQ.

Input, real ( kind = 8 ) QTY(NPOINT), the value of Q' * Y.

Input, integer ( kind = 4 ) NPOINT, the number of equations.

Input, integer ( kind = 4 ) NCOL, an unused parameter, which may be 
set to 1.

Output, real ( kind = 8 ) U(NPOINT), the solution.

Output, real ( kind = 8 ) QU(NPOINT), the value of Q * U.

Arguments

Type IntentOptional Attributes Name
real(kind=8) :: p
real(kind=8) :: v(npoint,7)
real(kind=8) :: qty(npoint)
integer(kind=4) :: npoint
integer(kind=4) :: ncol
real(kind=8) :: u(npoint)
real(kind=8) :: qu(npoint)