MA02BD

Reversing the order of rows and/or columns of a matrix

[Specification] [Arguments] [Method] [References] [Comments] [Example]

Purpose

  To reverse the order of rows and/or columns of a given matrix A
  by pre-multiplying and/or post-multiplying it, respectively, with
  a permutation matrix P, where P is a square matrix of appropriate
  order, with ones down the secondary diagonal.

Specification
      SUBROUTINE MA02BD( SIDE, M, N, A, LDA )
C     .. Scalar Arguments ..
      CHARACTER          SIDE
      INTEGER            LDA, M, N
C     .. Array Arguments ..
      DOUBLE PRECISION   A(LDA,*)

Arguments

Mode Parameters

  SIDE    CHARACTER*1
          Specifies the operation to be performed, as follows:
          = 'L': the order of rows of A is to be reversed by
                 pre-multiplying A with P;
          = 'R': the order of columns of A is to be reversed by
                 post-multiplying A with P;
          = 'B': both the order of rows and the order of columns
                 of A is to be reversed by pre-multiplying and
                 post-multiplying A with P.

Input/Output Parameters
  M       (input) INTEGER
          The number of rows of the matrix A.  M >= 0.

  N       (input) INTEGER
          The number of columns of the matrix A.  N >= 0.

  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
          On entry, the leading M-by-N part of this array must
          contain the given matrix whose rows and/or columns are to
          be permuted.
          On exit, the leading M-by-N part of this array contains
          the matrix P*A if SIDE = 'L', or A*P if SIDE = 'R', or
          P*A*P if SIDE = 'B'.

  LDA     INTEGER
          The leading dimension of the array A.  LDA >= max(1,M).

Further Comments
  None
Example

Program Text

  None
Program Data
  None
Program Results
  None

Return to Supporting Routines index