source: pacpussensors/trunk/Vislab/lib3dv/eigen/lapack/dladiv.f@ 136

Last change on this file since 136 was 136, checked in by ldecherf, 7 years ago

Doc

File size: 2.9 KB
Line 
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
Note: See TracBrowser for help on using the repository browser.