|  | *> \brief \b SLADIV | 
|  | * | 
|  | *  =========== DOCUMENTATION =========== | 
|  | * | 
|  | * Online html documentation available at | 
|  | *            http://www.netlib.org/lapack/explore-html/ | 
|  | * | 
|  | *> \htmlonly | 
|  | *> Download SLADIV + dependencies | 
|  | *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/sladiv.f"> | 
|  | *> [TGZ]</a> | 
|  | *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/sladiv.f"> | 
|  | *> [ZIP]</a> | 
|  | *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/sladiv.f"> | 
|  | *> [TXT]</a> | 
|  | *> \endhtmlonly | 
|  | * | 
|  | *  Definition: | 
|  | *  =========== | 
|  | * | 
|  | *       SUBROUTINE SLADIV( A, B, C, D, P, Q ) | 
|  | * | 
|  | *       .. Scalar Arguments .. | 
|  | *       REAL               A, B, C, D, P, Q | 
|  | *       .. | 
|  | * | 
|  | * | 
|  | *> \par Purpose: | 
|  | *  ============= | 
|  | *> | 
|  | *> \verbatim | 
|  | *> | 
|  | *> SLADIV performs complex division in  real arithmetic | 
|  | *> | 
|  | *>                       a + i*b | 
|  | *>            p + i*q = --------- | 
|  | *>                       c + i*d | 
|  | *> | 
|  | *> The algorithm is due to Robert L. Smith and can be found | 
|  | *> in D. Knuth, The art of Computer Programming, Vol.2, p.195 | 
|  | *> \endverbatim | 
|  | * | 
|  | *  Arguments: | 
|  | *  ========== | 
|  | * | 
|  | *> \param[in] A | 
|  | *> \verbatim | 
|  | *>          A is REAL | 
|  | *> \endverbatim | 
|  | *> | 
|  | *> \param[in] B | 
|  | *> \verbatim | 
|  | *>          B is REAL | 
|  | *> \endverbatim | 
|  | *> | 
|  | *> \param[in] C | 
|  | *> \verbatim | 
|  | *>          C is REAL | 
|  | *> \endverbatim | 
|  | *> | 
|  | *> \param[in] D | 
|  | *> \verbatim | 
|  | *>          D is REAL | 
|  | *>          The scalars a, b, c, and d in the above expression. | 
|  | *> \endverbatim | 
|  | *> | 
|  | *> \param[out] P | 
|  | *> \verbatim | 
|  | *>          P is REAL | 
|  | *> \endverbatim | 
|  | *> | 
|  | *> \param[out] Q | 
|  | *> \verbatim | 
|  | *>          Q is REAL | 
|  | *>          The scalars p and q in the above expression. | 
|  | *> \endverbatim | 
|  | * | 
|  | *  Authors: | 
|  | *  ======== | 
|  | * | 
|  | *> \author Univ. of Tennessee | 
|  | *> \author Univ. of California Berkeley | 
|  | *> \author Univ. of Colorado Denver | 
|  | *> \author NAG Ltd. | 
|  | * | 
|  | *> \date November 2011 | 
|  | * | 
|  | *> \ingroup auxOTHERauxiliary | 
|  | * | 
|  | *  ===================================================================== | 
|  | SUBROUTINE SLADIV( A, B, C, D, P, Q ) | 
|  | * | 
|  | *  -- LAPACK auxiliary routine (version 3.4.0) -- | 
|  | *  -- LAPACK is a software package provided by Univ. of Tennessee,    -- | 
|  | *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- | 
|  | *     November 2011 | 
|  | * | 
|  | *     .. Scalar Arguments .. | 
|  | REAL               A, B, C, D, P, Q | 
|  | *     .. | 
|  | * | 
|  | *  ===================================================================== | 
|  | * | 
|  | *     .. Local Scalars .. | 
|  | REAL               E, F | 
|  | *     .. | 
|  | *     .. Intrinsic Functions .. | 
|  | INTRINSIC          ABS | 
|  | *     .. | 
|  | *     .. Executable Statements .. | 
|  | * | 
|  | IF( ABS( D ).LT.ABS( C ) ) THEN | 
|  | E = D / C | 
|  | F = C + D*E | 
|  | P = ( A+B*E ) / F | 
|  | Q = ( B-A*E ) / F | 
|  | ELSE | 
|  | E = C / D | 
|  | F = D + C*E | 
|  | P = ( B+A*E ) / F | 
|  | Q = ( -A+B*E ) / F | 
|  | END IF | 
|  | * | 
|  | RETURN | 
|  | * | 
|  | *     End of SLADIV | 
|  | * | 
|  | END |