Base<F> HermitianNorm( UpperOrLower uplo, const Matrix<F>& A, NormType type ) { DEBUG_ONLY(CSE cse("HermitianNorm")) Base<F> norm = 0; switch( type ) { // The following norms are rather cheap to compute case FROBENIUS_NORM: norm = HermitianFrobeniusNorm( uplo, A ); break; case ENTRYWISE_ONE_NORM: norm = HermitianEntrywiseNorm( uplo, A, Base<F>(1) ); break; case INFINITY_NORM: norm = HermitianInfinityNorm( uplo, A ); break; case MAX_NORM: norm = HermitianMaxNorm( uplo, A ); break; case ONE_NORM: norm = HermitianOneNorm( uplo, A ); break; // The following norms make use of an SVD case NUCLEAR_NORM: norm = HermitianNuclearNorm( uplo, A ); break; case TWO_NORM: norm = HermitianTwoNorm( uplo, A ); break; } return norm; }
SymmetricInfinityNorm( UpperOrLower uplo, const Matrix<F>& A ) { #ifndef RELEASE CallStackEntry entry("SymmetricInfinityNorm"); #endif return HermitianInfinityNorm( uplo, A ); }