| *> \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 |