template<typename Scalar_>
class Eigen::LookAheadLevinson< Scalar_ >
Look-ahead Levinson direct solver for general Toeplitz systems.
Solves T*x = b for a square Toeplitz matrix T in O(n^2) operations. This is an implementation of the look-ahead Levinson algorithm of T. F. Chan and P. C. Hansen, which extends the classical Levinson recursion to remain (weakly) numerically stable for general — including indefinite and ill-conditioned — Toeplitz matrices. When the recursion would otherwise break down at a near-singular leading principal submatrix, the algorithm "looks ahead" and takes a block step (up to maxBlockSize) over it. As a by-product it produces an estimate of the matrix condition number (conditionEstimate).
The class derives from SolverBase and follows the usual decomposition style; transposed and adjoint systems reuse the factorization of T through the persymmetry \( T^T = E T E \) (with E the exchange matrix), so all three solves below cost the same:
VectorXd y = levinson.transpose().solve(b);
VectorXd z = levinson.adjoint().solve(b);
LookAheadLevinson()
Definition LookAheadLevinson.h:93
Matrix< double, Dynamic, 1 > VectorXd
- Template Parameters
-
| Scalar_ | the scalar type, real or complex. |
References:
- T. F. Chan and P. C. Hansen, "A look-ahead Levinson algorithm for general
Toeplitz systems," IEEE Trans. Signal Process., 40(5):1079-1090, 1992.
- T. F. Chan and P. C. Hansen, "A look-ahead Levinson algorithm for indefinite
Toeplitz systems," SIAM J. Matrix Anal. Appl., 13(2):490-506, 1992.
- See also
- class Toeplitz