Numer Algor DOI 10.1007/s11075-007-9082-6 ORIGINAL PAPER
Structured eigenvalue problems for rational gauss quadrature Dario Fasino · Luca Gemignani
Received: 21 November 2006 / Accepted: 6 March 2007 © Springer Science + Business Media B.V. 2007
Abstract The connection between Gauss quadrature rules and the algebraic eigenvalue problem for a Jacobi matrix was first exploited in the now classical paper by Golub and Welsch (Math. Comput. 23(106), 221–230, 1969). From then on many computational problems arising in the construction of (polynomial) Gauss quadrature formulas have been reduced to solving direct and inverse eigenvalue problems for symmetric tridiagonals. Over the last few years (rational) generalizations of the classical Gauss quadrature formulas have been studied, i.e., formulas integrating exactly in spaces of rational functions. This paper wants to illustrate that stable and efficient procedures based on structured numerical linear algebra techniques can also be devised for the solution of the eigenvalue problems arising in the field of rational Gauss quadrature. Keywords Rational gauss-type quadrature · Semiseparable matrices · Eigenvalue problems Mathematics Subject Classifications (2000) Primary 65D30 · Secondary 65F15 · 65F18
This work was supported by MIUR, grant number 2002014121. D. Fasino (B) Dipartimento di Informatica e Matematica, Università di Udine, Udine, Italy e-mail:
[email protected] L. Gemignani Dipartimento di Matematica, Università di Pisa, Pisa, Italy e-mail:
[email protected] Numer Algor
1 Introduction Given the real numbers y1 , . . . , yn all different from each other, consider the basis functions 1 αi (x) = , i = 1, . . . , n. α0 (x) = 1, x − yi Let dλ(x) be a measure on the real line such that all integrals αi (x)αj(x) dλ(x), xαi (x)αj(x) dλ(x), i, j = 0, . . . , n, R
R
exist and are finite; we also suppose that αi (x)2 dλ(x) > 0 for 0 ≤ i ≤ n. Notably, all the preceding assumptions are fulfilled whenever dλ(x) is supported on a finite and closed interval [a, b ], dλ(x) = ω(x)dx for some positive weight function ω(x), and the points y1 , y2 , . . . , yn lie outside [a, b ]. In this note we consider the construction of quadrature formulas G ( f) = In+1
n
wi2 f (xi ),
(1)
i=0
such that
f ∈ S2n+1 =⇒
where
S2n+1 =
G In+1 (
f) =
p(x) , 2 i=1 (x − yi )
n
R
f (x) dλ(x),
(2)
p(x) ∈ P2n+1
(3)
and P2n+1 is the space of all polynomials of degree not exceeding 2n + 1. Since S2n+1 is a vector space whose dimension is 2n + 2, the quadrature formula (1) is of Gauss-type. After initial works by Van Assche and Vanherwegen [27] and by López and Illán [25], the construction of Gauss-type quadrature formulas for rational functions with prescribed poles has been considered extensively by Gautschi and co-authors [16, 17, 19]. The usual approach to this task is to properly modify the weights of a classical (i.e., polynomial) Gauss formula in order to get the sought exactness for given spaces of rational functions. The interplay between classical analysis and numerical linear algebra in the theory and in the practice of rational quadrature formulas was first investigated by Bultheel et al. [4–6]. In this paper we proceed along this line. Here the emphasis is on the exploitation of the matrix structures involved and on the use of techniques borrowed from structured matrix technology to improve the complexity and the numerical robustness of the algorithms for rational quadrature based on linear algebra computations. The special class of rational functions (3) is used here as a paradigmatic example. We plan to extend in further works our study of matrix structures to wider classes and possibly to classical variants of Gauss-type quadrature formulas. In some sense, we want to pursue for rational functions the same program as in the polynomial case by
Numer Algor
showing the great computational potential of structured matrix methods for developing stable and efficient procedures for (rational) Gauss quadrature.
2 Continuous and discrete orthogonality Let us consider the vector space Rn of all proper rational functions having possible simple poles in y1 , y2 , . . . , yn : Rn = Span{αi (x), i = 0, . . . , n}. The vector space Rn is naturally equipped with the inner product φ, ψ = φ(x)ψ(x) dλ(x), R
which is positive definite owing to the hypotheses set on dλ(x). By applying the Gram-Schmidt algorithm to α0 (x), . . . , αn (x), we obtain a set of orthonormal functions α˜ 0 (x), . . . , α˜ n (x), characterized by the conditions α˜ j(x) ∈ R j \ R j−1 α˜ i , α˜ j = δi, j
(R−1 := ∅) (Kronecker delta)
j for i, j = 0, 1, . . . , n. If we write α˜ j(x) = pj(x)/qj(x) with qj(x) = i=1 (x − yi ), then pj(yj) = 0; otherwise if pj(yj) = 0 it follows that α˜ j(x) ∈ R j−1 , which is impossible. Such a sequence of orthonormal rational functions (ORF) satisfying α˜ j(yj) = 0 for j = 1, . . . , n, is called regular [7]. It is known [6, 7, 28] that a regular ORF sequence {α˜ j(x)} fulfills a three-term recurrence relation: T ˜ T (xIn+1 − diag[y0 , y1 , . . . , yn ])T = α(x) ˜ T + α˜ n+1 (x)en+1 α(x) ,
(4)
where pn+1 (x) α˜ n+1 (x) = n , j=1 (x − yj )
pn+1 (x) ∈ Pn+1 ,
˜ y0 is any real number with y0 = yj, α(x) = [α˜ 0 (x), . . . , α˜ n (x)]T and T is an invertible, irreducible, symmetric, tridiagonal matrix. These recurrences uniquely define the ORF sequence whenever we impose that the subdiagonal entries of T are all positive. Moreover, α˜ n+1 , α˜ j = 0 for 0 ≤ j ≤ n. Let G = T −1 + diag[y0 , y1 , . . . , yn ]. Since G and T are symmetric, (4) can be rewritten in the form ˜ ˜ xα(x) = Gα(x) + α˜ n+1 (x)T −1 en+1 ,
(5)
which describes how the “shift operator” f (x) → xf (x) acts on the functions α˜ 0 (x), . . . , α˜ n (x). We also obtain the integral representation ˜ α(x) ˜ T dλ(x). G= xα(x) (6) R
Let x¯ be a zero of α˜ n+1 (x). By evaluating (5) in x¯ we find ˜ x) ¯ = x¯ α( ˜ x), ¯ Gα(
Numer Algor
which says that x¯ is an eigenvalue of the symmetric matrix G with correspond˜ x). ¯ Incidentally, we also have that the zeros of α˜ n+1 (x) are ing eigenvector α( real, and that pn+1 (x) is a multiple of the characteristic polynomial of G. It is not difficult to recognize that the construction of the Gauss-type quadrature formula (1) is equivalent to the construction of a discrete inner product, φ, ψ =
n
wi2 φ(xi )ψ(xi ),
i=0
such that α˜ i , α˜ j = δi, j,
xα˜ i , α˜ j = xα˜ i , α˜ j,
(7)
for all 0 ≤ i, j ≤ n. Indeed, if all the preceding equalities are valid, then the exactness condition (2) holds true, due to the fact that S2n+1 = Span α˜ i (x)α˜ j(x), xα˜ i (x)α˜ j(x), 0 ≤ i, j ≤ n . Now, consider the matrix Q ≡ (wi α˜ j(xi ))0≤i, j≤n . The leftmost equalities in (7) can be rewritten in matrix form as QT Q = In+1 , that is, Q is orthogonal. T Remark that the first column of Q is the vector [w0 , . . . , wn ] multiplied by the factor ( dλ(x))−1/2 . Analogously, (6) allows us to restate the rightmost equalities in (7) as QT diag[x0 , . . . , xn ]Q = G. We obtain the following result: Theorem 1 The quadrature formula (1) fulfills the exactness condition (2) if and only if the nodes xi coincide with the eigenvalues of the matrix G in (6) and the weights wi2 are the squares of the first components of its normalized eigenvectors, divided by dλ(x). We close this section with a remark on the structure owned by the matrix G. This matrix arises as the sum of the inverse of a symmetric and irreducible tridiagonal matrix with a diagonal matrix. The study of the inverses of irreducible symmetric tridiagonal matrices goes back to Gantmacher and Krein [14] who proved that T −1 is a proper semiseparable matrix, that is, there exist two vectors u = [u0 , . . . , un ]T and v = [v0 , . . . , vn ]T with u0 = 0, vn = 0 and ui vi+1 = vi ui+1 for 0 ≤ i ≤ n − 1, such that ⎤ ⎡ u0 v0 u0 v1 . . . u0 vn ⎢ u0 v1 u1 v1 . . . u1 vn ⎥ ⎥ ⎢ (8) T −1 = ⎢ . .. . . .. ⎥ . ⎣ .. . . . ⎦ u0 vn u1 vn . . . un vn The matrix G is then referred to as a diagonal-plus-semiseparable matrix (dpss matrix for short), see e.g., [10, 11]. We observe that, in the (classical) orthogonal polynomial case, the matrix analogue to G in (6) is tridiagonal [18]; thus, in some sense, dpss matrices are the rational counterpart of tridiagonal matrices. Diagonal-plus-semiseparable matrices own interesting structural and computational properties, that make them a convenient tool for numerical
Numer Algor
linear algebra problems; for that reason, they are currently attracting a large interest in the numerical linear algebra community. Here, it is worth mentioning that virtually all computational properties owned by tridiagonal matrices (e.g., fast computation of their inverses, characteristic polynomials, basic factorizations, eigendecompositions, and structural invariance under QR steps), are also present in the dpss matrix class. In particular, concerning the above mentioned invariance of the dpss matrix class under QR steps, we briefly address the question of interpreting the action of a QR step with shift σ on a given dpss matrix G, in terms of orthogonal rational functions. In fact, in the polynomial case, performing a QR step with shift σ on the (tridiagonal) matrix G leads to another tridiagonal matrix G∗ whose entries are related to the recurrence coefficients for the orthogonal polynomials associated to the measure dλ∗ (x) = (x − σ )2 dλ(x), see e.g., [18, 23]. The following result fosters the analogy between orthogonal polynomials and tridiagonal matrices, on one side, with ORFs and dpss matrices, on the other side. Its proof follows easily from the content of [11, Thm. 4], the only technical difference being the inclusion of α0 (x) in the set of basis functions, hence we omit it here for brevity. Theorem 2 Let G be as in (6). Let G∗ be the matrix resulting by one QR step with shift σ on G: G − σ I = QG RG ,
G∗ = RG QG + σ I.
Then we have the spectral factorization G∗ = Q∗ T diag[x0 , . . . , xn ]Q∗ , where Q∗ ≡ (wi (xi − σ )α˜ ∗j (xi )), and α˜ 0∗ (x), . . . , α˜ n∗ (x) are the Gram-Schmidt orthogonalization of the basis functions α0 (x), . . . , αn (x) with respect to the discrete inner product φ, ψ,∗ =
n
wi2 (xi − σ )2 φ(xi )ψ(xi ).
i=0
3 The direct problem: computation of nodes and weights As shown in Theorem 1, the computation of the quadrature formula (1) amounts to computing the spectral decomposition of the dpss matrix G in (6). In the polynomial case this matrix is tridiagonal, and the customary approach to that task makes use of the Golub–Welsh [21] algorithm, which is just the QR eigenvalue algorithm applied to a symmetric tridiagonal matrix, modified in such a way that only the first components of the normalized eigenvectors are actually computed. The efficiency of this approach relies upon the invariance of the tridiagonal structure and the backward stability of QR transformations. Fast adaptations of the QR algorithm for computing the eigenvalues and the eigenvectors of a symmetric dpss matrix have been recently presented in [2, 30]. In fact, by exploiting the invariance of the dpss structure under the QR process [11], these algorithms achieve a linear complexity per iteration and, at
Numer Algor
the same time, they remain robust and converge as fast as the customary QR algorithm. However, for numerical reasons it would be desirable to avoid finding the inverse of T explicitly. Instead, one can compute the nodes and the weights of the Gaussian formula by solving a generalized eigenvalue problem for a tridiagonal matrix pencil. Indeed, from (4) we obtain ˜ k )T T, ˜ k )T (In+1 + diag[y0 , y1 , . . . , yn ]T) = xk α(x α(x
0 ≤ k ≤ n,
˜ k )T are, respectively, eigenvalues and corresponding which says that xk and α(x left eigenvectors of the pair (In+1 + diag[y0 , . . . , yn ]T, T) or, equivalently, of the matrix pencil In+1 + diag[y0 , . . . , yn ]T − xT. Example 1 Consider the ORF sequence with poles at the integer multiples of ω = 1.1 with respect to the scalar product 1 φ, ψ = φ(x)ψ(x) dx. −1
We have computed the tridiagonal matrix T of order 11 in (4) by determining the recursion coefficients using a multiprecision package. It is found that the generating elements ui , vi , 0 ≤ i, j ≤ 10, of T −1 verify max |ui |
107 , min |ui |
max |vi |
107 . min |vi |
This means that the use of fast structured methods for the inversion of T could lead to a substantial loss of accuracy in the computed eigenvalues. Although this loss of accuracy can in principle be circumvented by exploiting numerically stable representation techniques for semiseparable matrices, see [29], nevertheless this example also suggests that the map (y0 , . . . , yn ) → T −1 could be ill-conditioned. The QZ method [20, 32] is the customary algorithm for solving generalized eigenvalue problems. Unfortunately, a straightforward application of the QZ method to the considered matrix pair destroys its structural properties and thus turns out to be inefficient, by requiring O(n3 ) flops. To circumvent this problem we describe hereunder a different approach leading to a fast O(n2 ) algorithm. From T = T T we can get T T (In+1 + diag[y0 , . . . , yn ]T) = (In+1 + diag[y0 , . . . , yn ]T)T T. This means that (In+1 + diag[y0 , . . . , yn ]T, T) is a symmetric pair. Therefore, as in classical matrix theory, fractional linear transformations (Cayley transforms) can be used to map the real numbers xk on the unit circle [15]. Specifically, let γ , δ ∈ C be such that γ¯ δ = c i, i2 = −1, for a suitable real number c = 0. It is immediately verified that the pair (A, B), A = γ T + δ(In+1 + diag[y0 , y1 , . . . , yn ]T) B = γ T − δ(In+1 + diag[y0 , y1 , . . . , yn ]T),
Numer Algor
satisfies A H · A = B H · B,
(9)
and, moreover, ˜ k )T A = α(x
γ + δxk ˜ k )T B, α(x γ − δxk
0 ≤ k ≤ n.
(10)
Observe that the Cayley transform : R → C,
(x) =
γ + δx γ − δx
defines a one-to-one mapping from the real axis onto the unit circle in the complex plane, excluding the point −1. Differently speaking, the pair (A, B) has n + 1 distinct generalized eigenvalues all of them having modulus 1. These generalized eigenvalues are related to the eigenvalues of G by the Cayley transform . Since both A and B are tridiagonal matrices, it follows that their QR factorizations, A = Q A R A and B = Q B R B , can be computed very easily in linear time, see e.g., [20, 21, 32]. In addition, the unitary factors Q A and Q B turn out to be unitary upper Hessenberg matrices represented as products of n − 1 Givens rotation matrices. Due to the uniqueness of the Cholesky factorization of a positive definite matrix, from (9) we find that R A = SR B for a unitary diagonal matrix S. Therefore, using (10), H H ˜ k )T Q A S H Q H ˜ k )T Q A R A R−1 α(x B = α(x A S QB
˜ k )T AB−1 = α(x =
γ + δxk ˜ k )T = (xk )α(x ˜ k )T . α(x γ − δxk
˜ = Q A S H Q H are exactly the Hence, the eigenvalues of the unitary matrix Q B images under of the eigenvalues of G; furthermore, their respective (left) ˜ can be eigenvectors are the same. The (classical) eigenvalue problem for Q solved by using several different QR methods [1, 8, 9] exploiting the specific matrix structure at the cost of O(n2 ) flops. Once all the eigenvalues have been computed, we can use them as ultimate shifts to find the corresponding eigenvectors within the same complexity bound.
4 The inverse problem: construction of the ORF sequence In this section, we address the problem of reconstructing the ORF sequence {α˜ j(x)} from the knowledge of the quadrature formula (1), see [24] for the polynomial case. From (4) or (6), we see that this problem reduces to the computation of one of the matrices T and G, given the numbers xi , yi , wi , hence it can be recast as a customary inverse eigenvalue problem for a certain structured matrix.
Numer Algor
Recalling the spectral decomposition G = QT diag[x0 , . . . , xn ]Q,
w2 Qe1 = [w0 , . . . , wn ]T ,
(11)
−1
the computation of the matrix G = T + diag[y0 , . . . , yn ] can be regarded as a structured inverse eigenvalue problem where we have to determine a matrix with a prescribed structure, given its eigenvalues and the first components of the normalized eigenvectors. Efficient solution algorithms were first proposed in [12, 13, 28]. We present in this section a unified derivation of these algorithms based on the method of bordered diagonal matrices introduced in [3]. Let v = [v0 , . . . , vn ]T be the vector of coefficients vi appearing in the formula (8). From (11) we obtain that the vector f = u0 Qv is such that u0 Qv = QT −1 e1 = (diag[x0 , . . . , xn ]Q − Q diag[y0 , y1 , . . . , yn ])e1 = (diag[x0 , . . . , xn ] − y0 In )Qe1 T = w−1 2 [(x0 − y0 )w0 , . . . , (xn − y0 )wn ] .
Hence, the vector f can be explicitly computed from the initial data of the inverse problem. Consider the (n + 2) × (n + 2) matrices 1 0T fT μ Q= , (12) , M= 0 Q f diag[x0 , . . . , xn ] where μ is any real number different from x0 , . . . , xn . We have T T M Q = μ u0 v . Q u0 v G The matrix on the right hand-side turns out to be a dpss matrix, while the structure of the matrix M is called arrowhead; it differs from a diagonal is an orthogonal matrix only in its first row and column. Conversely, if Q matrix as in (12), reducing a given arrowhead matrix M into a dpss form having order n + 2, −1 + diag[ , y0 , . . . , yn ] for some tridiagonal matrix T T then Q satisfies (11). Moreover, its entries contain the values wi α˜ j(xi ), whence one can recover the sequence {α˜ j(x)}. Any computational method that uses orthogonal similarity transformations to reduce a symmetric matrix into a dpss form with a prescribed diagonal can be employed in the solution of this inverse eigenvalue problem. Such reduction algorithms have been recently proposed in [11, 31], based either on rational variants of the Krylov method [26] or on generalizations of the orthogonal tridiagonalization schemes including Householder and Givens transformations. The application of the latter algorithms to the arrowhead matrix M yields a rational analogue of the Gragg–Harrod algorithm [22] for the reconstruction of a Jacobi (tridiagonal) matrix from the coefficients of a Gaussian quadrature formula. The connection between the Gragg–Harrod algorithm and the qd algorithm of Rutishauser was enlightened in [24]. The exploitation of similar relationships for the rational case is an ongoing work.
Numer Algor
References 1. Bini, D.A., Eidelman, Y., Gemignani, L., Gohberg, I.: Fast QR eigenvalue algorithms for Hessenberg matrices which are rank-one perturbations of unitary matrices. Technical Report 1587, Dipartimento di Matematica, Università di Pisa, 2005. SIAM J. Matrix Anal. Appl. (to appear) 2. Bini, D.A., Gemignani, L., Pan, V.Y.: Fast and stable QR eigenvalue algorithms for generalized companion matrices and secular equations. Numer. Math. 100(3), 373–408 (2005) 3. Boley, D., Golub, G.H.: A survey of matrix inverse eigenvalue problems. Inverse Probl. 3(4), 595–622 (1987) 4. Bultheel, A., González-Vera, P., Hendriksen, E., Njåstad, O.: Orthogonal rational functions. In: Cambridge Monographs on Applied and Computational Mathematics, vol. 5. Cambridge University Press, Cambridge (1999) 5. Bultheel, A., González-Vera, P., Hendriksen, E., Njåstad, O.: Quadrature and orthogonal rational functions. J. Comput. Appl. Math., 127(1–2), 67–91 (2001) (Numerical analysis 2000, vol. V, Quadrature and orthogonal polynomials) 6. Bultheel, A., González-Vera, P., Hendriksen, E., Njåstad, O.: Orthogonal rational functions and tridiagonal matrices. J. Comput. Appl. Math. 153, 89–97 (2003) 7. Bultheel, A., Van Barel, M., Van Gucht, P.: Orthogonal basis functions in discrete leastsquares rational approximation. J. Comput. Appl. Math. 164/165, 175–194 (2004) 8. Delvaux, S., Van Barel, M.: Eigenvalue computation for unitary rank structured matrices. J. Comput. Appl. Math. (2007) (to appear) 9. Eidelman, Y., Gemignani, L., Gohberg, I.: On the fast reduction of a quasiseparable matrix to Hessenberg and tridiagonal forms. Linear Algebra Appl. 420, 86–101 (2007) 10. Eidelman, Y., Gohberg, I.: Fast inversion algorithms for diagonal plus semiseparable matrices. Integr. Equ. Oper. Theory 27, 165–183 (1997) 11. Fasino, D.: Rational Krylov matrices and QR steps on Hermitian diagonal-plus-semiseparable matrices. Numer. Linear Algebra Appl. 12(8), 743–754 (2005) 12. Fasino, D., Gemignani, L.: A Lanczos-type algorithm for the QR factorization of regular Cauchy matrices. Numer. Linear Algebra Appl. 9(4), 305–319 (2002) 13. Fasino, D., Gemignani, L.: A Lanczos-type algorithm for the QR factorization of Cauchy-like matrices. In: Contemp. Math., vol. 323, pp. 91–104. Amer. Math. Soc., Providence, RI (2003) 14. Gantmacher, F.P., Krein, M.G.: Oscillation matrices and kernels and small vibrations of mechanical systems, revised edition. AMS Chelsea, Providence, RI (2002) 15. Gardiner, J.D., Laub, A.J.: A generalization of matrix-sign-functions solution for algebraic Riccati equations. Internat. J. Control 44, 823–832 (1986) 16. Gautschi, W.: Gauss-type quadrature rules for rational functions. In: Numerical integration, IV (Oberwolfach, 1992), vol. 112, pp. 111–130. Internat. Ser. Numer. Math. Birkhäuser, Basel (1993) 17. Gautschi, W.: The use of rational functions in numerical quadrature. J. Comput. Appl. Math. 133(1–2), 111–126 (2001) 18. Gautschi, W.: Orthogonal polynomials: computation and approximation. Numerical Mathematics and Scientific Computation. Oxford University Press, New York (2004) 19. Gautschi, W., Gori, L., Lo Cascio, M.L.: Quadrature rules for rational functions. Numer. Math. 86(4), 617–633 (2000) 20. Golub, G.H., Van Loan, C.F.: Matrix computations. Johns Hopkins University Press, Baltimore, MD (1983) 21. Golub, G.H., Welsch, J.H.: Calculation of Gauss quadrature rules. Math. Comput. 23(106), 221–230 (1969) 22. Gragg, W.B., Harrod, W.J.: The numerically stable reconstruction of Jacobi matrices from spectral data. Numer. Math. 44(3), 317–335 (1984) 23. Kautský, J., Golub, G.H.: On the calculation of Jacobi matrices. Linear Algebra Appl. 52/53, 439–455 (1983) 24. Laurie, D.P.: Accurate recovery of recursion coefficients from Gaussian quadrature formulas. J. Comput. Appl. Math. 112(1–2), 165–180 (1999) 25. López Lagomasino, G., Illán González, J.: The interpolation methods of numerical integration and their connection with rational approximation. Cienc. Mat. (Havana) 8(2), 31–44 (1987)
Numer Algor 26. Ruhe, A.: Rational Krylov sequence methods for eigenvalue computation. Linear Algebra Appl. 58, 391–405 (1984) 27. Van Assche, W., Vanherwegen, I.: Quadrature formulas based on rational interpolation. Math. Comput. 61(204) 765–783 (1993) 28. Van Barel, M., Fasino, D., Gemignani, L., Mastronardi, N.: Orthogonal rational functions and structured matrices. SIAM J. Matrix Anal. Appl. 26(3), 810–829 (2005) 29. Vandebril, R., Van Barel, M., Mastronardi, N.: A note on the representation and definition of semiseparable matrices. Numer. Linear Algebra Appl. 12(8), 839–858 (2005) 30. Vandebril, R., Van Barel, M., Mastronardi, N.: An implicit QR algorithm for symmetric semiseparable matrices. Numer. Linear Algebra Appl. 12(7), 625–658 (2005) 31. Vandebril, R., Van Camp, E., Van Barel, M., Mastronardi, N.: Orthogonal similarity transformation of a symmetric matrix into a diagonal-plus-semiseparable one with free choice of the diagonal. Numer. Math. 102(4) 709–726 (2006) 32. Watkins, D.S.: Fundamentals of matrix computations. Pure and applied mathematics. Wiley-Interscience, New York (2002)