MA02HD

Check if a matrix is a scalar multiple of an identity-like matrix

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

Purpose

  To check if A = DIAG*I, where I is an M-by-N matrix with ones on
  the diagonal and zeros elsewhere.

Specification
      LOGICAL FUNCTION MA02HD( JOB, M, N, DIAG, A, LDA )
C     .. Scalar Arguments ..
      CHARACTER          JOB
      INTEGER            LDA, M, N
      DOUBLE PRECISION   DIAG
C     .. Array Arguments ..
      DOUBLE PRECISION   A(LDA,*)

Function Value
  MA02HD  LOGICAL
          The function value is set to .TRUE. if A = DIAG*I, and to
          .FALSE., otherwise. If min(M,N) = 0, the value is .FALSE.

Arguments

Mode Parameters

  JOB     CHARACTER*1
          Specifies the part of the matrix A to be checked out,
          as follows:
          = 'U': Upper triangular/trapezoidal part;
          = 'L': Lower triangular/trapezoidal part.
          Otherwise:  All of the matrix A.

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.

  DIAG   (input) DOUBLE PRECISION
         The scalar DIAG.

  A      (input) DOUBLE PRECISION array, dimension (LDA,N)
         The leading M-by-N part of this array must contain the
         matrix A.  If JOB = 'U', only the upper triangle or
         trapezoid is accessed; if JOB = 'L', only the lower
         triangle or trapezoid is accessed.

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

Method
  The routine returns immediately after detecting a diagonal element
  which differs from DIAG, or a nonzero off-diagonal element in the
  searched part of A.

Further Comments
  None
Example

Program Text

  None
Program Data
  None
Program Results
  None

Return to Supporting Routines index