Contents


NAME

     dtrans - transpose and scale source matrix

SYNOPSIS

     SUBROUTINE DTRANS(PLACE, SCALE, SOURCE, M, N, DEST)

     CHARACTER * 1 PLACE
     INTEGER M, N
     DOUBLE PRECISION SCALE
     DOUBLE PRECISION SOURCE(*), DEST(*)

     SUBROUTINE DTRANS_64(PLACE, SCALE, SOURCE, M, N, DEST)

     CHARACTER * 1 PLACE
     INTEGER*8 M, N
     DOUBLE PRECISION SCALE
     DOUBLE PRECISION SOURCE(*), DEST(*)

  F95 INTERFACE
     SUBROUTINE TRANS([PLACE], SCALE, SOURCE, M, N, [DEST])

     CHARACTER(LEN=1) :: PLACE
     INTEGER :: M, N
     REAL(8) :: SCALE
     REAL(8), DIMENSION(:) :: SOURCE, DEST

     SUBROUTINE TRANS_64([PLACE], SCALE, SOURCE, M, N, [DEST])

     CHARACTER(LEN=1) :: PLACE
     INTEGER(8) :: M, N
     REAL(8) :: SCALE
     REAL(8), DIMENSION(:) :: SOURCE, DEST

  C INTERFACE
     #include <sunperf.h>

     void dtrans(char place, double scale, double *source, int m,
               int n, double *dest);

     void dtrans_64(char place,  double  scale,  double  *source,
               long m, long n, double *dest);

PURPOSE

     dtrans scales and transposes the source matrix.  The N2 x N1
     result  is  written into SOURCE when PLACE = 'I' or 'i', and
     DEST when PLACE = 'O' or 'o'.
       PLACE = 'I' or 'i': SOURCE = SCALE * SOURCE'

       PLACE = 'O' or 'o': DEST = SCALE * SOURCE'

ARGUMENTS

     PLACE (input)
               Type of transpose.  'I' or 'i' for  in-place,  'O'
               or 'o' for out-of-place. 'I' is default.

     SCALE (input)
               Scale factor on the SOURCE matrix.

     SOURCE (input/output)
               (M, N) on input.  Array of (N,  M)  on  output  if
               in-place transpose.

     M (input)
               Number of rows in the SOURCE matrix on input.

     N (input)
               Number of columns in the SOURCE matrix on input.

     DEST (output)
               Scaled and transposed  SOURCE  matrix  if  out-of-
               place transpose.  Not referenced if in-place tran-
               spose.