Annotation of rpl/lapack/lapack/dladiv.f, revision 1.1

1.1     ! bertrand    1:       SUBROUTINE DLADIV( A, B, C, D, P, Q )
        !             2: *
        !             3: *  -- LAPACK auxiliary routine (version 3.2) --
        !             4: *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
        !             5: *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
        !             6: *     November 2006
        !             7: *
        !             8: *     .. Scalar Arguments ..
        !             9:       DOUBLE PRECISION   A, B, C, D, P, Q
        !            10: *     ..
        !            11: *
        !            12: *  Purpose
        !            13: *  =======
        !            14: *
        !            15: *  DLADIV performs complex division in  real arithmetic
        !            16: *
        !            17: *                        a + i*b
        !            18: *             p + i*q = ---------
        !            19: *                        c + i*d
        !            20: *
        !            21: *  The algorithm is due to Robert L. Smith and can be found
        !            22: *  in D. Knuth, The art of Computer Programming, Vol.2, p.195
        !            23: *
        !            24: *  Arguments
        !            25: *  =========
        !            26: *
        !            27: *  A       (input) DOUBLE PRECISION
        !            28: *  B       (input) DOUBLE PRECISION
        !            29: *  C       (input) DOUBLE PRECISION
        !            30: *  D       (input) DOUBLE PRECISION
        !            31: *          The scalars a, b, c, and d in the above expression.
        !            32: *
        !            33: *  P       (output) DOUBLE PRECISION
        !            34: *  Q       (output) DOUBLE PRECISION
        !            35: *          The scalars p and q in the above expression.
        !            36: *
        !            37: *  =====================================================================
        !            38: *
        !            39: *     .. Local Scalars ..
        !            40:       DOUBLE PRECISION   E, F
        !            41: *     ..
        !            42: *     .. Intrinsic Functions ..
        !            43:       INTRINSIC          ABS
        !            44: *     ..
        !            45: *     .. Executable Statements ..
        !            46: *
        !            47:       IF( ABS( D ).LT.ABS( C ) ) THEN
        !            48:          E = D / C
        !            49:          F = C + D*E
        !            50:          P = ( A+B*E ) / F
        !            51:          Q = ( B-A*E ) / F
        !            52:       ELSE
        !            53:          E = C / D
        !            54:          F = D + C*E
        !            55:          P = ( B+A*E ) / F
        !            56:          Q = ( -A+B*E ) / F
        !            57:       END IF
        !            58: *
        !            59:       RETURN
        !            60: *
        !            61: *     End of DLADIV
        !            62: *
        !            63:       END

CVSweb interface <joel.bertrand@systella.fr>