Condition number

Main header file

Subroutines

The condition number of a matrix with respect to a particular norm is

\[\kappa(A) = \|A\| \|A^{-1}\|,\]

with the most common choice being the matrix two-norm.

General

Returns the condition number with respect to the specified norm (one, two, or Frobenius).

C++ API

Base<F> Condition(const Matrix<F> &A, NormType type = TWO_NORM)
Base<F> Condition(const AbstractDistMatrix<F> &A, NormType type = TWO_NORM)

C API

ElError ElCondition_s(ElConstMatrix_s A, ElNormType normType, float* cond)
ElError ElCondition_d(ElConstMatrix_d A, ElNormType normType, double* cond)
ElError ElCondition_c(ElConstMatrix_c A, ElNormType normType, float* cond)
ElError ElCondition_z(ElConstMatrix_z A, ElNormType normType, double* cond)
ElError ElConditionDist_s(ElConstDistMatrix_s A, ElNormType normType, float* cond)
ElError ElConditionDist_d(ElConstDistMatrix_d A, ElNormType normType, double* cond)
ElError ElConditionDist_c(ElConstDistMatrix_c A, ElNormType normType, float* cond)
ElError ElConditionDist_z(ElConstDistMatrix_z A, ElNormType normType, double* cond)

Frobenius norm

Returns the condition number with respect to the Frobenius norm.

C++ API

Base<F> FrobeniusCondition(const Matrix<F> &A)
Base<F> FrobeniusCondition(const AbstractDistMatrix<F> &A)

C API

ElError ElFrobeniusCondition_s(ElConstMatrix_s A, float* cond)
ElError ElFrobeniusCondition_d(ElConstMatrix_d A, double* cond)
ElError ElFrobeniusCondition_c(ElConstMatrix_c A, float* cond)
ElError ElFrobeniusCondition_z(ElConstMatrix_z A, double* cond)
ElError ElFrobeniusConditionDist_s(ElConstDistMatrix_s A, float* cond)
ElError ElFrobeniusConditionDist_d(ElConstDistMatrix_d A, double* cond)
ElError ElFrobeniusConditionDist_c(ElConstDistMatrix_c A, float* cond)
ElError ElFrobeniusConditionDist_z(ElConstDistMatrix_z A, double* cond)

Infinity norm

Returns the condition number with respect to the infinity norm.

C++ API

Base<F> InfinityCondition(const Matrix<F> &A)
Base<F> InfinityCondition(const AbstractDistMatrix<F> &A)

C API

ElError ElInfinityCondition_s(ElConstMatrix_s A, float* cond)
ElError ElInfinityCondition_d(ElConstMatrix_d A, double* cond)
ElError ElInfinityCondition_c(ElConstMatrix_c A, float* cond)
ElError ElInfinityCondition_z(ElConstMatrix_z A, double* cond)
ElError ElInfinityConditionDist_s(ElConstDistMatrix_s A, float* cond)
ElError ElInfinityConditionDist_d(ElConstDistMatrix_d A, double* cond)
ElError ElInfinityConditionDist_c(ElConstDistMatrix_c A, float* cond)
ElError ElInfinityConditionDist_z(ElConstDistMatrix_z A, double* cond)

Max norm

Returns the condition number with respect to the entrywise maximum norm.

C++ API

Base<F> MaxCondition(const Matrix<F> &A)
Base<F> MaxCondition(const AbstractDistMatrix<F> &A)

C API

ElError ElMaxCondition_s(ElConstMatrix_s A, float* cond)
ElError ElMaxCondition_d(ElConstMatrix_d A, double* cond)
ElError ElMaxCondition_c(ElConstMatrix_c A, float* cond)
ElError ElMaxCondition_z(ElConstMatrix_z A, double* cond)
ElError ElMaxConditionDist_s(ElConstDistMatrix_s A, float* cond)
ElError ElMaxConditionDist_d(ElConstDistMatrix_d A, double* cond)
ElError ElMaxConditionDist_c(ElConstDistMatrix_c A, float* cond)
ElError ElMaxConditionDist_z(ElConstDistMatrix_z A, double* cond)

One norm

Returns the condition number with respect to the one norm.

C++ API

Base<F> OneCondition(const Matrix<F> &A)
Base<F> OneCondition(const AbstractDistMatrix<F> &A)

C API

ElError ElOneCondition_s(ElConstMatrix_s A, float* cond)
ElError ElOneCondition_d(ElConstMatrix_d A, double* cond)
ElError ElOneCondition_c(ElConstMatrix_c A, float* cond)
ElError ElOneCondition_z(ElConstMatrix_z A, double* cond)
ElError ElOneConditionDist_s(ElConstDistMatrix_s A, float* cond)
ElError ElOneConditionDist_d(ElConstDistMatrix_d A, double* cond)
ElError ElOneConditionDist_c(ElConstDistMatrix_c A, float* cond)
ElError ElOneConditionDist_z(ElConstDistMatrix_z A, double* cond)

Two norm

Returns the condition number with respect to the two norm.

C++ API

Base<F> TwoCondition(const Matrix<F> &A)
Base<F> TwoCondition(const AbstractDistMatrix<F> &A)

C API

ElError ElTwoCondition_s(ElConstMatrix_s A, float* cond)
ElError ElTwoCondition_d(ElConstMatrix_d A, double* cond)
ElError ElTwoCondition_c(ElConstMatrix_c A, float* cond)
ElError ElTwoCondition_z(ElConstMatrix_z A, double* cond)
ElError ElTwoConditionDist_s(ElConstDistMatrix_s A, float* cond)
ElError ElTwoConditionDist_d(ElConstDistMatrix_d A, double* cond)
ElError ElTwoConditionDist_c(ElConstDistMatrix_c A, float* cond)
ElError ElTwoConditionDist_z(ElConstDistMatrix_z A, double* cond)