NAME

dtrsm - solve one of the matrix equations op( A )*X = alpha*B, or X*op( A ) = alpha*B


SYNOPSIS

  SUBROUTINE DTRSM( SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, 
 *      LDB)
  CHARACTER * 1 SIDE, UPLO, TRANSA, DIAG
  INTEGER M, N, LDA, LDB
  DOUBLE PRECISION ALPHA
  DOUBLE PRECISION A(LDA,*), B(LDB,*)
  SUBROUTINE DTRSM_64( SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, 
 *      B, LDB)
  CHARACTER * 1 SIDE, UPLO, TRANSA, DIAG
  INTEGER*8 M, N, LDA, LDB
  DOUBLE PRECISION ALPHA
  DOUBLE PRECISION A(LDA,*), B(LDB,*)

F95 INTERFACE

  SUBROUTINE TRSM( SIDE, UPLO, [TRANSA], DIAG, [M], [N], ALPHA, A, 
 *       [LDA], B, [LDB])
  CHARACTER(LEN=1) :: SIDE, UPLO, TRANSA, DIAG
  INTEGER :: M, N, LDA, LDB
  REAL(8) :: ALPHA
  REAL(8), DIMENSION(:,:) :: A, B
  SUBROUTINE TRSM_64( SIDE, UPLO, [TRANSA], DIAG, [M], [N], ALPHA, A, 
 *       [LDA], B, [LDB])
  CHARACTER(LEN=1) :: SIDE, UPLO, TRANSA, DIAG
  INTEGER(8) :: M, N, LDA, LDB
  REAL(8) :: ALPHA
  REAL(8), DIMENSION(:,:) :: A, B

C INTERFACE

#include <sunperf.h>

void dtrsm(char side, char uplo, char transa, char diag, int m, int n, double alpha, double *a, int lda, double *b, int ldb);

void dtrsm_64(char side, char uplo, char transa, char diag, long m, long n, double alpha, double *a, long lda, double *b, long ldb);


PURPOSE

dtrsm solves one of the matrix equations op( A )*X = alpha*B, or X*op( A ) = alpha*B where alpha is a scalar, X and B are m by n matrices, A is a unit, or non-unit, upper or lower triangular matrix and op( A ) is one of

   op( A ) = A   or   op( A ) = A'.

The matrix X is overwritten on B.


ARGUMENTS