1*> \brief \b DLADIV 2* 3* =========== DOCUMENTATION =========== 4* 5* Online html documentation available at 6* http://www.netlib.org/lapack/explore-html/ 7* 8*> \htmlonly 9*> Download DLADIV + dependencies 10*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dladiv.f"> 11*> [TGZ]</a> 12*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dladiv.f"> 13*> [ZIP]</a> 14*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dladiv.f"> 15*> [TXT]</a> 16*> \endhtmlonly 17* 18* Definition: 19* =========== 20* 21* SUBROUTINE DLADIV( A, B, C, D, P, Q ) 22* 23* .. Scalar Arguments .. 24* DOUBLE PRECISION A, B, C, D, P, Q 25* .. 26* 27* 28*> \par Purpose: 29* ============= 30*> 31*> \verbatim 32*> 33*> DLADIV performs complex division in real arithmetic 34*> 35*> a + i*b 36*> p + i*q = --------- 37*> c + i*d 38*> 39*> The algorithm is due to Robert L. Smith and can be found 40*> in D. Knuth, The art of Computer Programming, Vol.2, p.195 41*> \endverbatim 42* 43* Arguments: 44* ========== 45* 46*> \param[in] A 47*> \verbatim 48*> A is DOUBLE PRECISION 49*> \endverbatim 50*> 51*> \param[in] B 52*> \verbatim 53*> B is DOUBLE PRECISION 54*> \endverbatim 55*> 56*> \param[in] C 57*> \verbatim 58*> C is DOUBLE PRECISION 59*> \endverbatim 60*> 61*> \param[in] D 62*> \verbatim 63*> D is DOUBLE PRECISION 64*> The scalars a, b, c, and d in the above expression. 65*> \endverbatim 66*> 67*> \param[out] P 68*> \verbatim 69*> P is DOUBLE PRECISION 70*> \endverbatim 71*> 72*> \param[out] Q 73*> \verbatim 74*> Q is DOUBLE PRECISION 75*> The scalars p and q in the above expression. 76*> \endverbatim 77* 78* Authors: 79* ======== 80* 81*> \author Univ. of Tennessee 82*> \author Univ. of California Berkeley 83*> \author Univ. of Colorado Denver 84*> \author NAG Ltd. 85* 86*> \date November 2011 87* 88*> \ingroup auxOTHERauxiliary 89* 90* ===================================================================== 91 SUBROUTINE DLADIV( A, B, C, D, P, Q ) 92* 93* -- LAPACK auxiliary routine (version 3.4.0) -- 94* -- LAPACK is a software package provided by Univ. of Tennessee, -- 95* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 96* November 2011 97* 98* .. Scalar Arguments .. 99 DOUBLE PRECISION A, B, C, D, P, Q 100* .. 101* 102* ===================================================================== 103* 104* .. Local Scalars .. 105 DOUBLE PRECISION E, F 106* .. 107* .. Intrinsic Functions .. 108 INTRINSIC ABS 109* .. 110* .. Executable Statements .. 111* 112 IF( ABS( D ).LT.ABS( C ) ) THEN 113 E = D / C 114 F = C + D*E 115 P = ( A+B*E ) / F 116 Q = ( B-A*E ) / F 117 ELSE 118 E = C / D 119 F = D + C*E 120 P = ( B+A*E ) / F 121 Q = ( -A+B*E ) / F 122 END IF 123* 124 RETURN 125* 126* End of DLADIV 127* 128 END 129