MA01DZ

Approximate symmetric chordal metric for two, possibly infinite, complex numbers

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

Purpose

  To compute an approximate symmetric chordal metric for two complex
  numbers A1 and A2 in real arithmetic.  Each number Aj, j = 1, 2,
  is represented as a rational number with numerator ARj + i*AIj,
  and denominator Bj, with Bj >= 0.  A value Bj = 0, when ARj or AIj
  is nonzero, means that the number Aj is infinite.  The case when
  ARj = AIj = Bj = 0 means that the pair (Aj,Bj) is not a number.

Specification
      SUBROUTINE MA01DZ( AR1, AI1, B1, AR2, AI2, B2, EPS, SAFEMN, D1,
     $                   D2, IWARN )
C     .. Scalar Arguments ..
      DOUBLE PRECISION  AI1, AI2, AR1, AR2, B1, B2, D1, D2, EPS, SAFEMN
      INTEGER           IWARN

Arguments

Input/Output Parameters

  AR1     (input) DOUBLE PRECISION
  AI1     (input) DOUBLE PRECISION
          These scalars define the real and imaginary parts of the
          numerator of A1.

  B1      (input) DOUBLE PRECISION
          The denominator of A1.  B1 >= 0.

  AR2     (input) DOUBLE PRECISION
  AI2     (input) DOUBLE PRECISION
          These scalars define the real and imaginary parts of the
          numerator of A2.

  B2      (input) DOUBLE PRECISION
          The denominator of A2.  B2 >= 0.

  EPS     (input) DOUBLE PRECISION
          The relative machine precision. See the LAPACK Library
          routine DLAMCH.

  SAFEMN  (input) DOUBLE PRECISION
          The "safe minimum", such that its reciprocal does not
          overflow. See the LAPACK Library routine DLAMCH.

  D1      (output) DOUBLE PRECISION
          The numerator of the chordal metric D.  D1 >= 0.

  D2      (output) DOUBLE PRECISION
          The denominator of the chordal metric D.  D2 is 0 or 1.
          If D2 = 0, and D1 = 0, the chordal metric is undefined, so
          either A1 and/or A2 are undefined.

Warning Indicator
  IWARN   INTEGER
          = 0:  no warning;
          = 1:  A1 or A2 is not a number (NaN);  D1 and D2 are both
                set to 0.

Method
  The approximate symmetric chordal metric is evaluated using the
  formula

     D = MIN( | A1 - A2 |, |1/A1 - 1/A2| ),

  taking into account the special cases of infinite or NaN values.
  The chordal metric is finite even if A1 and A2 are both infinite,
  or if one of them is infinite and the other is finite, nonzero.

Further Comments
  None
Example

Program Text

  None
Program Data
  None
Program Results
  None

Return to Supporting Routines index