Function Reference
— Function File: [u, h, nu] = krylov (a, v, k, eps1, pflg)

Construct an orthogonal basis u of block Krylov subspace

          [v a*v a^2*v ... a^(k+1)*v]

Using Householder reflections to guard against loss of orthogonality.

If v is a vector, then h contains the Hessenberg matrix such that a*u == u*h+rk*ek', in which rk = a*u(:,k)-u*h(:,k), and ek' is the vector [0, 0, ..., 1] of length k. Otherwise, h is meaningless.

If v is a vector and k is greater than length(A)-1, then h contains the Hessenberg matrix such that a*u == u*h.

The value of nu is the dimension of the span of the krylov subspace (based on eps1).

If b is a vector and k is greater than m-1, then h contains the Hessenberg decomposition of a.

The optional parameter eps1 is the threshold for zero. The default value is 1e-12.

If the optional parameter pflg is nonzero, row pivoting is used to improve numerical behavior. The default value is 0.

Reference: Hodel and Misra, "Partial Pivoting in the Computation of Krylov Subspaces", to be submitted to Linear Algebra and its Applications