skysm


NAME

skysm, sskysm, dskysm - Skyline format triangular solve


SYNOPSIS

  SUBROUTINE SSKYSM( TRANSA, M, N, UNITD, DV, ALPHA, DESCRA,
 *           VAL, PNTR,
 *           B, LDB, BETA, C, LDC, WORK, LWORK )
  INTEGER*4  TRANSA, M, N, UNITD, DESCRA(5),
 *           LDB, LDC, LWORK
  INTEGER*4  PNTR(*),
  REAL*4     ALPHA, BETA
  REAL*4     DV(NDV), VAL(NNZ), B(LDB,*), C(LDC,*), WORK(LWORK)
  SUBROUTINE DSKYSM( TRANSA, M, N, UNITD, DV, ALPHA, DESCRA,
 *           VAL, PNTR,
 *           B, LDB, BETA, C, LDC, WORK, LWORK)
  INTEGER*4  TRANSA, M, N, UNITD, DESCRA(5),
 *           LDB, LDC, LWORK
  INTEGER*4  PNTR(*),
  REAL*8     ALPHA, BETA
  REAL*8     DV(NDV), VAL(NNZ), B(LDB,*), C(LDC,*), WORK(LWORK)
  where NNZ = PNTR(M+1)-1 (upper triangular)
        NNZ = PNTR(K+1)-1 (lower triangular)
        PNTR() size = (M+1) (upper triangular)
        PNTR() size = (K+1) (lower triangular)


DESCRIPTION

 C <- alpha D inv(A) B + beta C    C <- alpha D inv(A') B + beta C
 C <- alpha inv(A) D B + beta C    C <- alpha inv(A') D B + beta C
                                    ( ' indicates matrix transpose)


ARGUMENTS

 TRANSA        Indicates how to operate with the sparse matrix
                 0 : operate with matrix
                 1 : operate with transpose matrix
 M             Number of rows in matrix A
 N             Number of columns in matrix C
 UNITD         Type of scaling:
                 1 : Identity matrix (argument DV[] is ignored)
                 2 : Scale on left (row scaling)
                 3 : Scale on right (column scaling)
 DV()          Array containing the diagonal entries of the (block)
               diagonal matrix D.
 ALPHA         Scalar parameter
 DESCRA()      Descriptor argument.  Five element integer array
               DESCRA(1) matrix structure
                 0 : general
                 1 : symmetric
                 2 : Hermitian
                 3 : Triangular
                 4 : Skew(Anti-Symmetric
                 5 : Diagonal
               DESCRA(2) upper/lower triangular indicator
                 1 : lower
                 2 : upper
               DESCRA(3) main diagonal type
                 0 : non-unit
                 1 : unit
               DESCRA(4) Array base  (NOT IMPLEMENTED)
                 0 : C/C++ compatible
                 1 : Fortran compatible
               DESCRA(5) repeated indices? (NOT IMPLEMENTED)
                 0 : unknown
                 1 : no repeated indices
 VAL()         array contain the nonzeros of A in skyline profile form.
               Row-oriented if DESCRA(2) = 1 (lower triangular), 
               column oriented if DESCRA(2) = 2 (upper triangular).
 PNTR()        integer array of length M+1 (lower triangular) or
               K+1 (upper triangular) such that PNTR(I)-PNTR(1)+1
               points to the location in VAL of the first element of
               the skyline profile in row (column) I.
 B()           rectangular array with first dimension LDB.
 LDB           leading dimension of B
 BETA          Scalar parameter
 C()           rectangular array with first dimension LDC.
 LDC           leading dimension of C
 WORK()        scratch array of length LWORK.  LWORK should be at least
               MAX(M,N).
 LWORK         length of WORK array


SEE ALSO

NIST FORTRAN Sparse Blas User's Guide available at:

http://math.nist.gov/mcsd/Staff/KRemington/fspblas/


NOTES/BUGS

The NIST FORTRAN Sparse BLAS are currently at version 0.5. Some features (including the ones so noted) may not yet be implemented.