Numerical Limitations for Compact BLAS and Compact LAPACK
Compact routines are subject to a set of numerical limitations. They also
skip most of the checks presented in regular BLAS and LAPACK routines in order to provide
effective vectorization. The following limitations apply to at least one compact routine.
: BLAS and LAPACK
compact routines rely on a naïve method for complex division that does not protect the
solution against overflow, underflow, or loss of precision.
: the LAPACK compact
routines skip error checking for performance reasons ; therefore, the user is responsible for
passing correct parameters. There are no checks for incorrect matrices (such as singular for
LU, non-positive-definite for Cholesky) - it is always assumed that the algorithm for the
input matrix can be completed without error.
: the generic LU
calculates the factorization using partial pivoting. However, because pivoting includes
comparisons which cannot be effectively vectorized, only non-pivoting versions of LU
and Inverse from LU
) are provided as
Matrices scaled near
: the LAPACK compact routines do not provide safe handling for values
near underflow/overflow. This means that Compact routines may return incorrect results for
such matrices. This limitation is related to compact routine for QR:
It is the responsibility of the user to ensure that the input matrices
can be factorized, inverted, and/or solved given these numerical limitations.