11.1 Numerical methods that use special structure.

We have noted that a basis for an (*n* − *m*)-dimensional subspace of span R t1 ,… , R tn in Wm [0, 1] may be obtained that has compact support. This results in a band structure for certain matrices, and numerical methods that make use of this structure should be faster than those that do not. See Reinsch (1971) for a fast algorithm for computing the univariate smoothing spline when λ is given. Various authors have come upon this special structure from different points of view. Looking at the *m* − 1 fold integrated Weiner process *X*(*t*) of (1.5.2) it can be seen that it is an *m*-ple Markov process in the sense of Dolph and Woodbury (1952), Hida (1960). This means that the prediction of *X*(*s*) for any s>t , given *X*(*u*), *u* ∈ [0, *t*] is a function of X (v) (t),ν=0,1,… ,m−1 . Starting with this or similar reasoning, fast recursive formulas for the univariate polynomial smoothing spline have been obtained by various authors (see, e.g., Weinert and Kailath (1974)). Ansley and Kohn (1987) used this kind of reasoning to obtain a fast algorithm that included the computation of the GCV estimate of λ. Recently Shiau (1988) has used similar results to obtain fast algorithms for partial spline models in Wm with jumps. For some time it was an open question whether or not the special structure inherent in smoothing in Wm could be used to obtain an *O*(*n*) algorithm for computing the univariate polynomial smoothing spline along with the GCV estimate of λ. Hutchinson and deHoog (1985) and O'Sullivan (1985b) appear to be the first to provide such an algorithm. A fast, accurate, user-friendly code based on the Hutchinson and deHoog paper, with some improvements, has been implemented by Woltring (1985, 1986) and may be obtained from netlib over the internet, as may O'Sullivan's code. Netlib is a robot library system run by Jack Dongarra and Eric Grosse and its internet address is [email protected]. If you write to netlib with “send index” in the body of the message, the robot mailserver will return instructions for using the system. O'Sullivan's and Woltring's code may be obtained this way. Code for generating B-splines based on deBoor's book may also be obtained this way. Earlier, Utreras (1983) provided a cheap way of evaluating trace *A*(λ) in the equally spaced data case in Wm , based on good approximate values for the relevant eigenvalues. This method is implemented in Version 8 et seq of IMSL (1986).