Matrix norms¶
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.
General¶
Compute a norm of a fully-populated or implicitly symmetric/Hermitian (with the data stored in the specified triangle) matrix.
C++ API¶
-
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)¶
Entrywise¶
The following routines return the \(\ell_p\) norm of the columns of A stacked into a single vector, i.e., \(\| \text{vec}(A) \|_p\). Note that the Frobenius norm corresponds to the \(p=2\) case.
C++ API¶
-
Base<F>
EntrywiseNorm(const AbstractDistMatrix<F> &A, Base<F> p = 1)¶
-
Base<F>
SymmetricEntrywiseNorm(UpperOrLower uplo, const Matrix<F> &A, Base<F> p = 1)¶
-
Base<F>
SymmetricEntrywiseNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A, Base<F> p = 1)¶
-
Base<F>
SymmetricEntrywiseNorm(UpperOrLower uplo, const SparseMatrix<F> &A, Base<F> p = 1)¶
-
Base<F>
SymmetricEntrywiseNorm(UpperOrLower uplo, const DistSparseMatrix<F> &A, Base<F> p = 1)¶
-
Base<F>
HermitianEntrywiseNorm(UpperOrLower uplo, const Matrix<F> &A, Base<F> p = 1)¶
-
Base<F>
HermitianEntrywiseNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A, Base<F> p = 1)¶
-
Base<F>
HermitianEntrywiseNorm(UpperOrLower uplo, const SparseMatrix<F> &A, Base<F> p = 1)¶
-
Base<F>
HermitianEntrywiseNorm(UpperOrLower uplo, const DistSparseMatrix<F> &A, Base<F> p = 1)¶
C API¶
-
ElError
ElSymmetricEntrywiseNorm_s(ElUpperOrLower uplo, ElConstMatrix_s A, float p, float* norm)¶
-
ElError
ElSymmetricEntrywiseNorm_d(ElUpperOrLower uplo, ElConstMatrix_d A, double p, double* norm)¶
-
ElError
ElSymmetricEntrywiseNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, float p, float* norm)¶
-
ElError
ElSymmetricEntrywiseNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, double p, double* norm)¶
-
ElError
ElSymmetricEntrywiseNormDist_s(ElUpperOrLower uplo, ElConstDistMatrix_s A, float p, float* norm)¶
-
ElError
ElSymmetricEntrywiseNormDist_d(ElUpperOrLower uplo, ElConstDistMatrix_d A, double p, double* norm)¶
-
ElError
ElSymmetricEntrywiseNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, float p, float* norm)¶
-
ElError
ElSymmetricEntrywiseNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, double p, double* norm)¶
-
ElError
ElHermitianEntrywiseNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, float p, float* norm)¶
-
ElError
ElHermitianEntrywiseNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, double p, double* norm)¶
-
ElError
ElHermitianEntrywiseNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, float p, float* norm)¶
-
ElError
ElHermitianEntrywiseNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, double p, double* norm)¶
Frobenius norm¶
The following routines return the \(\ell_2\) norm of the singular values (the Schatten norm with \(p=2\)), which can be cheaply computed as the \(\ell_2\) norm of \(\text{vec}(A)\).
C++ API¶
-
Base<F>
FrobeniusNorm(const AbstractDistMatrix<F> &A)¶
-
Base<F>
SymmetricFrobeniusNorm(UpperOrLower uplo, const Matrix<F> &A)¶
-
Base<F>
SymmetricFrobeniusNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A)¶
-
Base<F>
SymmetricFrobeniusNorm(UpperOrLower uplo, const SparseMatrix<F> &A)¶
-
Base<F>
SymmetricFrobeniusNorm(UpperOrLower uplo, const DistSparseMatrix<F> &A)¶
-
Base<F>
HermitianFrobeniusNorm(UpperOrLower uplo, const Matrix<F> &A)¶
-
Base<F>
HermitianFrobeniusNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A)¶
-
Base<F>
HermitianFrobeniusNorm(UpperOrLower uplo, const SparseMatrix<F> &A)¶
-
Base<F>
HermitianFrobeniusNorm(UpperOrLower uplo, const DistSparseMatrix<F> &A)¶
C API¶
-
ElError
ElSymmetricFrobeniusNorm_s(ElUpperOrLower uplo, ElConstMatrix_s A, float* norm)¶
-
ElError
ElSymmetricFrobeniusNorm_d(ElUpperOrLower uplo, ElConstMatrix_d A, double* norm)¶
-
ElError
ElSymmetricFrobeniusNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, float* norm)¶
-
ElError
ElSymmetricFrobeniusNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, double* norm)¶
-
ElError
ElSymmetricFrobeniusNormDist_s(ElUpperOrLower uplo, ElConstDistMatrix_s A, float* norm)¶
-
ElError
ElSymmetricFrobeniusNormDist_d(ElUpperOrLower uplo, ElConstDistMatrix_d A, double* norm)¶
-
ElError
ElSymmetricFrobeniusNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, float* norm)¶
-
ElError
ElSymmetricFrobeniusNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, double* norm)¶
-
ElError
ElHermitianFrobeniusNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, float* norm)¶
-
ElError
ElHermitianFrobeniusNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, double* norm)¶
-
ElError
ElHermitianFrobeniusNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, float* norm)¶
-
ElError
ElHermitianFrobeniusNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, double* norm)¶
Ky-Fan norm¶
The following routines compute the sum of the largest k singular values.
C++ API¶
-
Base<F>
KyFanNorm(const AbstractDistMatrix<F> &A, Int k)¶
-
Base<F>
SymmetricKyFanNorm(UpperOrLower uplo, const Matrix<F> &A, Int k)¶
-
Base<F>
SymmetricKyFanNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A, Int k)¶
-
Base<F>
HermitianKyFanNorm(UpperOrLower uplo, const Matrix<F> &A, Int k)¶
-
Base<F>
HermitianKyFanNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A, Int k)¶
C API¶
-
ElError
ElSymmetricKyFanNorm_s(ElUpperOrLower uplo, ElConstMatrix_s A, ElInt k, float* norm)¶
-
ElError
ElSymmetricKyFanNorm_d(ElUpperOrLower uplo, ElConstMatrix_d A, ElInt k, double* norm)¶
-
ElError
ElSymmetricKyFanNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, ElInt k, float* norm)¶
-
ElError
ElSymmetricKyFanNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, ElInt k, double* norm)¶
-
ElError
ElSymmetricKyFanNormDist_s(ElUpperOrLower uplo, ElConstDistMatrix_s A, ElInt k, float* norm)¶
-
ElError
ElSymmetricKyFanNormDist_d(ElUpperOrLower uplo, ElConstDistMatrix_d A, ElInt k, double* norm)¶
-
ElError
ElSymmetricKyFanNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, ElInt k, float* norm)¶
-
ElError
ElSymmetricKyFanNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, ElInt k, double* norm)¶
-
ElError
ElHermitianKyFanNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, ElInt k, float* norm)¶
-
ElError
ElHermitianKyFanNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, ElInt k, double* norm)¶
-
ElError
ElHermitianKyFanNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, ElInt k, float* norm)¶
-
ElError
ElHermitianKyFanNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, ElInt k, double* norm)¶
Infinity norm¶
The following routines compute the maximum \(\ell_1\) norm of the rows of A. In the symmetric and Hermitian cases, this is equivalent to the \(\|\cdot \|_1\) norm.
C++ API¶
-
Base<F>
InfinityNorm(const AbstractDistMatrix<F> &A)¶
-
Base<F>
SymmetricInfinityNorm(UpperOrLower uplo, const Matrix<F> &A)¶
-
Base<F>
SymmetricInfinityNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A)¶
-
Base<F>
HermitianInfinityNorm(UpperOrLower uplo, const Matrix<F> &A)¶
-
Base<F>
HermitianInfinityNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A)¶
C API¶
-
ElError
ElSymmetricInfinityNorm_s(ElUpperOrLower uplo, ElConstMatrix_s A, float* norm)¶
-
ElError
ElSymmetricInfinityNorm_d(ElUpperOrLower uplo, ElConstMatrix_d A, double* norm)¶
-
ElError
ElSymmetricInfinityNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, float* norm)¶
-
ElError
ElSymmetricInfinityNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, double* norm)¶
-
ElError
ElSymmetricInfinityNormDist_s(ElUpperOrLower uplo, ElConstDistMatrix_s A, float* norm)¶
-
ElError
ElSymmetricInfinityNormDist_d(ElUpperOrLower uplo, ElConstDistMatrix_d A, double* norm)¶
-
ElError
ElSymmetricInfinityNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, float* norm)¶
-
ElError
ElSymmetricInfinityNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, double* norm)¶
-
ElError
ElHermitianInfinityNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, float* norm)¶
-
ElError
ElHermitianInfinityNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, double* norm)¶
-
ElError
ElHermitianInfinityNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, float* norm)¶
-
ElError
ElHermitianInfinityNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, double* norm)¶
Max norm¶
The following routines compute the maximum absolute value of the matrix entries.
C++ API¶
-
Base<T>
MaxNorm(const AbstractDistMatrix<T> &A)¶
-
Base<T>
MaxNorm(const SparseMatrix<T> &A)¶
-
Base<T>
MaxNorm(const DistSparseMatrix<T> &A)¶
-
Base<T>
SymmetricMaxNorm(UpperOrLower uplo, const Matrix<T> &A)¶
-
Base<T>
SymmetricMaxNorm(UpperOrLower uplo, const AbstractDistMatrix<T> &A)¶
-
Base<T>
SymmetricMaxNorm(UpperOrLower uplo, const SparseMatrix<T> &A)¶
-
Base<T>
SymmetricMaxNorm(UpperOrLower uplo, const DistSparseMatrix<T> &A)¶
-
Base<T>
HermitianMaxNorm(UpperOrLower uplo, const Matrix<T> &A)¶
-
Base<T>
HermitianMaxNorm(UpperOrLower uplo, const AbstractDistMatrix<T> &A)¶
-
Base<T>
HermitianMaxNorm(UpperOrLower uplo, const SparseMatrix<T> &A)¶
-
Base<T>
HermitianMaxNorm(UpperOrLower uplo, const DistSparseMatrix<T> &A)¶
C API¶
-
ElError
ElSymmetricMaxNorm_i(ElUpperOrLower uplo, ElConstMatrix_i A, ElInt* norm)¶
-
ElError
ElSymmetricMaxNorm_s(ElUpperOrLower uplo, ElConstMatrix_s A, float* norm)¶
-
ElError
ElSymmetricMaxNorm_d(ElUpperOrLower uplo, ElConstMatrix_d A, double* norm)¶
-
ElError
ElSymmetricMaxNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, float* norm)¶
-
ElError
ElSymmetricMaxNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, double* norm)¶
-
ElError
ElSymmetricMaxNormDist_i(ElUpperOrLower uplo, ElConstDistMatrix_i A, ElInt* norm)¶
-
ElError
ElSymmetricMaxNormDist_s(ElUpperOrLower uplo, ElConstDistMatrix_s A, float* norm)¶
-
ElError
ElSymmetricMaxNormDist_d(ElUpperOrLower uplo, ElConstDistMatrix_d A, double* norm)¶
-
ElError
ElSymmetricMaxNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, float* norm)¶
-
ElError
ElSymmetricMaxNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, double* norm)¶
-
ElError
ElHermitianMaxNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, float* norm)¶
-
ElError
ElHermitianMaxNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, double* norm)¶
-
ElError
ElHermitianMaxNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, float* norm)¶
-
ElError
ElHermitianMaxNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, double* norm)¶
Nuclear norm¶
The following routines compute the sum of the singular values. This is equivalent to both the KyFan norm with \(k=n\) and the Schatten norm with \(p=1\). Note that the nuclear norm is dual to the two-norm, which is the Schatten norm with \(p=\infty\).
C++ API¶
-
Base<F>
NuclearNorm(const AbstractDistMatrix<F> &A)¶
-
Base<F>
SymmetricNuclearNorm(UpperOrLower uplo, const Matrix<F> &A)¶
-
Base<F>
SymmetricNuclearNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A)¶
-
Base<F>
HermitianNuclearNorm(UpperOrLower uplo, const Matrix<F> &A)¶
-
Base<F>
HermitianNuclearNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A)¶
C API¶
-
ElError
ElSymmetricNuclearNorm_s(ElUpperOrLower uplo, ElConstMatrix_s A, float* norm)¶
-
ElError
ElSymmetricNuclearNorm_d(ElUpperOrLower uplo, ElConstMatrix_d A, double* norm)¶
-
ElError
ElSymmetricNuclearNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, float* norm)¶
-
ElError
ElSymmetricNuclearNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, double* norm)¶
-
ElError
ElSymmetricNuclearNormDist_s(ElUpperOrLower uplo, ElConstDistMatrix_s A, float* norm)¶
-
ElError
ElSymmetricNuclearNormDist_d(ElUpperOrLower uplo, ElConstDistMatrix_d A, double* norm)¶
-
ElError
ElSymmetricNuclearNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, float* norm)¶
-
ElError
ElSymmetricNuclearNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, double* norm)¶
-
ElError
ElHermitianNuclearNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, float* norm)¶
-
ElError
ElHermitianNuclearNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, double* norm)¶
-
ElError
ElHermitianNuclearNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, float* norm)¶
-
ElError
ElHermitianNuclearNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, double* norm)¶
One norm¶
The following routines compute the maximum \(\ell_1\) norm of the columns of A. In the symmetric and Hermitian cases, this is equivalent to the \(\| \cdot \|_\infty\) norm.
C++ API¶
-
Base<F>
OneNorm(const AbstractDistMatrix<F> &A)¶
-
Base<F>
SymmetricOneNorm(UpperOrLower uplo, const Matrix<F> &A)¶
-
Base<F>
SymmetricOneNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A)¶
-
Base<F>
HermitianOneNorm(UpperOrLower uplo, const Matrix<F> &A)¶
-
Base<F>
HermitianOneNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A)¶
C API¶
-
ElError
ElSymmetricOneNorm_s(ElUpperOrLower uplo, ElConstMatrix_s A, float* norm)¶
-
ElError
ElSymmetricOneNorm_d(ElUpperOrLower uplo, ElConstMatrix_d A, double* norm)¶
-
ElError
ElSymmetricOneNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, float* norm)¶
-
ElError
ElSymmetricOneNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, double* norm)¶
-
ElError
ElSymmetricOneNormDist_s(ElUpperOrLower uplo, ElConstDistMatrix_s A, float* norm)¶
-
ElError
ElSymmetricOneNormDist_d(ElUpperOrLower uplo, ElConstDistMatrix_d A, double* norm)¶
-
ElError
ElSymmetricOneNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, float* norm)¶
-
ElError
ElSymmetricOneNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, double* norm)¶
-
ElError
ElHermitianOneNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, float* norm)¶
-
ElError
ElHermitianOneNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, double* norm)¶
-
ElError
ElHermitianOneNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, float* norm)¶
-
ElError
ElHermitianOneNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, double* norm)¶
Schatten norm¶
The following routines compute the \(\ell_p\) norm of the singular values.
C++ API¶
-
Base<F>
SchattenNorm(const AbstractDistMatrix<F> &A, Base<F> p)¶
-
Base<F>
SymmetricSchattenNorm(UpperOrLower uplo, const Matrix<F> &A, Base<F> p)¶
-
Base<F>
SymmetricSchattenNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A, Base<F> p)¶
-
Base<F>
HermitianSchattenNorm(UpperOrLower uplo, const Matrix<F> &A, Base<F> p)¶
-
Base<F>
HermitianSchattenNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A, Base<F> p)¶
C API¶
Two norm¶
The following routines compute the maximum singular value. This is equivalent to the KyFan norm with k equal to one and the Schatten norm with \(p=\infty\).
C++ API¶
-
Base<F>
TwoNorm(const AbstractDistMatrix<F> &A)¶
-
Base<F>
SymmetricTwoNorm(UpperOrLower uplo, const Matrix<F> &A)¶
-
Base<F>
SymmetricTwoNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A)¶
-
Base<F>
HermitianTwoNorm(UpperOrLower uplo, const Matrix<F> &A)¶
-
Base<F>
HermitianTwoNorm(UpperOrLower uplo, const AbstractDistMatrix<F> &A)¶
C API¶
-
ElError
ElSymmetricTwoNorm_s(ElUpperOrLower uplo, ElConstMatrix_s A, float* norm)¶
-
ElError
ElSymmetricTwoNorm_d(ElUpperOrLower uplo, ElConstMatrix_d A, double* norm)¶
-
ElError
ElSymmetricTwoNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, float* norm)¶
-
ElError
ElSymmetricTwoNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, double* norm)¶
-
ElError
ElSymmetricTwoNormDist_s(ElUpperOrLower uplo, ElConstDistMatrix_s A, float* norm)¶
-
ElError
ElSymmetricTwoNormDist_d(ElUpperOrLower uplo, ElConstDistMatrix_d A, double* norm)¶
-
ElError
ElSymmetricTwoNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, float* norm)¶
-
ElError
ElSymmetricTwoNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, double* norm)¶
-
ElError
ElHermitianTwoNorm_c(ElUpperOrLower uplo, ElConstMatrix_c A, float* norm)¶
-
ElError
ElHermitianTwoNorm_z(ElUpperOrLower uplo, ElConstMatrix_z A, double* norm)¶
-
ElError
ElHermitianTwoNormDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, float* norm)¶
-
ElError
ElHermitianTwoNormDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, double* norm)¶
Zero “norm”¶
The following routines return the number of nonzero entries in the matrix. This operation is often casually referred to as the zero “norm”.
C API¶
Two-norm estimates¶
The following routines return an estimate for the two-norm which should be accurate within a factor of \(n\) times the specified tolerance.
C++ API¶
-
Base<F>
TwoNormEstimate(const AbstractDistMatrix<F> &A, Base<F> tol = 1e-6, Int maxIts = 1000)¶
-
Base<F>
SymmetricTwoNormEstimate(UpperOrLower uplo, const Matrix<F> &A, Base<F> tol = 1e-6, Int maxIts = 1000)¶
-
Base<F>
SymmetricTwoNormEstimate(UpperOrLower uplo, const AbstractDistMatrix<F> &A, Base<F> tol = 1e-6, Int maxIts = 1000)¶
-
Base<F>
HermitianTwoNormEstimate(UpperOrLower uplo, const Matrix<F> &A, Base<F> tol = 1e-6, Int maxIts = 1000)¶
-
Base<F>
HermitianTwoNormEstimate(UpperOrLower uplo, const AbstractDistMatrix<F> &A, Base<F> tol = 1e-6, Int maxIts = 1000)¶
C API¶
-
ElError
ElSymmetricTwoNormEstimate_s(ElUpperOrLower uplo, ElConstMatrix_s A, float tol, ElInt maxIts)¶
-
ElError
ElSymmetricTwoNormEstimate_d(ElUpperOrLower uplo, ElConstMatrix_d A, double tol, ElInt maxIts)¶
-
ElError
ElSymmetricTwoNormEstimate_c(ElUpperOrLower uplo, ElConstMatrix_c A, float tol, ElInt maxIts)¶
-
ElError
ElSymmetricTwoNormEstimate_z(ElUpperOrLower uplo, ElConstMatrix_z A, double tol, ElInt maxIts)¶
-
ElError
ElSymmetricTwoNormEstimateDist_s(ElUpperOrLower uplo, ElConstDistMatrix_s A, float tol, ElInt maxIts)¶
-
ElError
ElSymmetricTwoNormEstimateDist_d(ElUpperOrLower uplo, ElConstDistMatrix_d A, double tol, ElInt maxIts)¶
-
ElError
ElSymmetricTwoNormEstimateDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, float tol, ElInt maxIts)¶
-
ElError
ElSymmetricTwoNormEstimateDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, double tol, ElInt maxIts)¶
-
ElError
ElHermitianTwoNormEstimate_c(ElUpperOrLower uplo, ElConstMatrix_c A, float tol, ElInt maxIts)¶
-
ElError
ElHermitianTwoNormEstimate_z(ElUpperOrLower uplo, ElConstMatrix_z A, double tol, ElInt maxIts)¶
-
ElError
ElHermitianTwoNormEstimateDist_c(ElUpperOrLower uplo, ElConstDistMatrix_c A, float tol, ElInt maxIts)¶
-
ElError
ElHermitianTwoNormEstimateDist_z(ElUpperOrLower uplo, ElConstDistMatrix_z A, double tol, ElInt maxIts)¶
