You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							128 lines
						
					
					
						
							2.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							128 lines
						
					
					
						
							2.8 KiB
						
					
					
				
								*> \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
							 |