# 17.2 ELL_Matrix Methods

The CÆSAR Code Package uses the ELL_Matrix class to contain and manipulate algebraic matrices. The following discussion assumes that A and B are matrices of dimension M×N, ai, j is an element of A, x is a vector of length N, and y is a vector of length M.

The CÆSAR Code Package contains procedures to calculate matrix norms and matrix-vector products. In parallel, these operations require global communication. Matrix-vector products (MatVecs) are defined by

 Ax = y = ai, j xj  . (17.9)
A matrix norm is any scalar-valued function on a matrix, denoted by the double bar notation A, that satisfies these properties:

 A 0 , A + B A + B  , sA = sA  , .
(17.10)
A frequently used matrix norm is the Frobenius norm:

 A =  . (17.11)
The general class of matrix norms known as the p-norms are defined in terms of vector norms by:

 A = = Ax       , p1  . (17.12)
In particular, the 1 and norms are the most easily calculated:
 A = ai, j         (maximum absolute column sum), (17.13) A = ai, j         (maximum absolute row sum). (17.14)

In general, p-norms are difficult to calculate. The 2-norm can be shown to be:
 A = , (17.15) = ,  , (17.16)

where AH is the Hermitian (or complex conjugate transpose, or adjoint) of A. Calculating the 2-norm of a matrix requires an iterative procedure, and is not currently done in CÆSAR (only Frobenius, p = 1 and p = norms are calculated). However, CÆSAR calculates an estimate of the 2-norm as a range (or the middle of the range) using the following relationships:

 A A A  , ai, j A ai, j  , A A A  , A A A  , A .
(17.17)
For a similar but more complete discussion of matrix operations see Golub & Van Loan (1989).

Michael L. Hall