SYNOPSIS
#include "matrix.h" Real m_norm1(MAT *A) Real m_norm_inf(MAT *A) Real m_norm_frob(MAT *A)
#include "zmatrix.h" Real zm_norm1(ZMAT *A) Real zm_norm_inf(ZMAT *A) Real zm_norm_frob(ZMAT *A)
DESCRIPTION
These routines compute matrix norms. The routines m_norm1() and zm_norm1() compute the matrix norm of A in the matrix 1--norm; m_norm_inf() and \newlinezm_norm_inf() compute the matrix norm of A in the matrix $\infty$--norm; \newlinem_norm_frob() and zm_norm_frob() compute the Frobenius norm of A. All of these routines are unscaled; that is, there is no scaling vector for weighting the elements of A. These norms are defined through the following formulae: \begin{gather} \|A\|_1=\max_j\sum_i|a_{ij}|,\qquad \|A\|_\infty=\max_i\sum_j|a_{ij}|,\\ \|A\|_{F}=\sqrt{\sum_{ij}|a_{ij}|^2}. \end{gather} The matrix 2--norm is not included as it requires the calculation of eigenvalues or singular values.
EXAMPLE
MAT *A; ...... printf("||A||_1 = printf("||A||_inf = printf("||A||_F =
SEE ALSO: v_norm1(), v_norm_inf(), zv_norm1(), zv_norm_inf().
BUGS
The Frobenius norm calculations may overflow if the elements of A are of order $\sqrt{\text{HUGE}}$.
SOURCE FILE: norm.c, znorm.c