Matrix norms

Vanilla interface

Header file

Implementation

The following routines can return either \(\|A\|_1\), \(\|A\|_\infty\), \(\|A\|_F\) (the Frobenius norm), the maximum entrywise norm, \(\|A\|_2\), or \(\|A\|_*\) (the nuclear/trace norm) of fully-populated matrices.

C++ API

Base<F> Norm(const Matrix<F> &A, NormType type = FROBENIUS_NORM)
Base<F> Norm(const AbstractDistMatrix<F> &A, NormType type = FROBENIUS_NORM)
Base<F> SymmetricNorm(UpperOrLower uplo, const Matrix<F> &A, NormType type = FROBENIUS_NORM)
Base<F> SymmetricNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A, NormType type = FROBENIUS_NORM)
Base<F> HermitianNorm(UpperOrLower uplo, const Matrix<F> &A, NormType type = FROBENIUS_NORM)
Base<F> HermitianNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A, NormType type = FROBENIUS_NORM)

C API

ElError ElNorm_s(ElConstMatrix_s A, ElNormType type, float* norm)
ElError ElNorm_d(ElConstMatrix_d A, ElNormType type, double* norm)
ElError ElNorm_c(ElConstMatrix_c A, ElNormType type, float* norm)
ElError ElNorm_z(ElConstMatrix_z A, ElNormType type, double* norm)
ElError ElNormDist_s(ElConstDistMatrix_s A, ElNormType type, float* norm)
ElError ElNormDist_d(ElConstDistMatrix_d A, ElNormType type, double* norm)
ElError ElNormDist_c(ElConstDistMatrix_c A, ElNormType type, float* norm)
ElError ElNormDist_z(ElConstDistMatrix_z A, ElNormType type, double* norm)
ElError ElSymmetricNorm_s(ElUpperOrLower uplo, ElConstMatrix_s A, ElNormType type, float* norm)
ElError ElSymmetricNorm_d(ElUpperOrLower uplo, ElConstMatrix_d A, ElNormType type, double* norm)
ElError ElSymmetricNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, ElNormType type, float* norm)
ElError ElSymmetricNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, ElNormType type, double* norm)
ElError ElSymmetricNormDist_s(ElUpperOrLower uplo, ElConstDistMatrix_s A, ElNormType type, float* norm)
ElError ElSymmetricNormDist_d(ElUpperOrLower uplo, ElConstDistMatrix_d A, ElNormType type, double* norm)
ElError ElSymmetricNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, ElNormType type, float* norm)
ElError ElSymmetricNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, ElNormType type, double* norm)
ElError ElHermitianNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, ElNormType type, float* norm)
ElError ElHermitianNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, ElNormType type, double* norm)
ElError ElHermitianNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, ElNormType type, float* norm)
ElError ElHermitianNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, ElNormType type, double* norm)

Python API

Norm(A, normType=FROBENIUS_NORM)
HermitianNorm(A, uplo=LOWER, normType=FROBENIUS_NORM)
SymmetricNorm(A, conjugate=False, uplo=LOWER, normType=FROBENIUS_NORM)