dtrans


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.

* 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 transpose.