A global tridiagonal matrix
*A* ,
represented as three vectors
(*DL*, *D*, *DU*), should be
distributed over a one-dimensional
process grid assuming a block-column
data distribution. We assume that
the coefficient tridiagonal matrix
*A*
is of size ()
and is represented by the following.

If we first assume that the matrix *A* is
nonsymmetric (diagonally dominant like),
and it is known *a priori* that no
pivoting is required for numerical stability,
the user may choose to perform no pivoting
during the factorization
(PxDTTRF ).
If we distribute this matrix
(assuming no pivoting) onto
a process grid
with a block size of ,
the processes would contain the
local arrays found in figure 4.13.

**Figure 4.13:** Mapping of local arrays for nonsymmetric tridiagonal
matrix *A*

Finally, a global symmetric positive
definite tridiagonal matrix *A* ,
represented as two vectors (*D* and *E*),
should be distributed over a one-dimensional
process grid assuming a block-column data
distribution.

Let us now assume that this matrix *A*
is symmetric positive definite and that
we distribute this matrix assuming lower
triangular storage (UPLO='L') onto a
process grid with a block
size . The processes would
contain the local arrays found in
figure 4.14. We would
then call the routine
PxPTTRF
to perform the factorization, for example.

**Figure 4.14:** Mapping of local arrays for symmetric positive definite
tridiagonal matrix *A* (UPLO='L')

If we then distributed this same matrix assuming upper triangular storage (UPLO='U') onto a process grid with a block size , the processes would contain the local arrays found in figure 4.15.

**Figure 4.15:** Mapping of local arrays for symmetric positive definite
tridiagonal matrix *A* (UPLO='U')

Note that in the tridiagonal cases, it is not necessary to maintain the empty storage positions as designated by in the narrow band routines.

The matrix of right-hand-side
vectors *B* (for example, used in
PxDTTRS
and PxPTTRS )
is assumed to be a dense matrix distributed
block-row across the process grid. Thus,
consecutive blocks of rows of the matrix
*B* are assigned to successive processes
in the process grid, as described in
section 4.4.1.

Tue May 13 09:21:01 EDT 1997