strans


NAME

strans - transpose and scale source matrix


SYNOPSIS

  SUBROUTINE STRANS( PLACE, SCALE, SOURCE, M, N, DEST)
  CHARACTER * 1 PLACE
  INTEGER M, N
  REAL SCALE
  REAL SOURCE(*), DEST(*)
 
  SUBROUTINE STRANS_64( PLACE, SCALE, SOURCE, M, N, DEST)
  CHARACTER * 1 PLACE
  INTEGER*8 M, N
  REAL SCALE
  REAL SOURCE(*), DEST(*)
 

F95 INTERFACE

  SUBROUTINE TRANS( [PLACE], SCALE, SOURCE, M, N, DEST)
  CHARACTER(LEN=1) :: PLACE
  INTEGER :: M, N
  REAL :: SCALE
  REAL, DIMENSION(:) :: SOURCE, DEST
 
  SUBROUTINE TRANS_64( [PLACE], SCALE, SOURCE, M, N, DEST)
  CHARACTER(LEN=1) :: PLACE
  INTEGER(8) :: M, N
  REAL :: SCALE
  REAL, DIMENSION(:) :: SOURCE, DEST
 

C INTERFACE

#include <sunperf.h>

void strans(char place, float scale, float *source, int m, int n, float *dest);

void strans_64(char place, float scale, float *source, long m, long n, float *dest);


PURPOSE

strans 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.