LAPACK  3.4.1
LAPACK: Linear Algebra PACKage
clctes.f
Go to the documentation of this file.
00001 *> \brief \b CLCTES
00002 *
00003 *  =========== DOCUMENTATION ===========
00004 *
00005 * Online html documentation available at 
00006 *            http://www.netlib.org/lapack/explore-html/ 
00007 *
00008 *  Definition:
00009 *  ===========
00010 *
00011 *       LOGICAL          FUNCTION CLCTES( Z, D )
00012 * 
00013 *       .. Scalar Arguments ..
00014 *       COMPLEX            D, Z
00015 *       ..
00016 *  
00017 *
00018 *> \par Purpose:
00019 *  =============
00020 *>
00021 *> \verbatim
00022 *>
00023 *> CLCTES returns .TRUE. if the eigenvalue Z/D is to be selected
00024 *> (specifically, in this subroutine, if the real part of the
00025 *> eigenvalue is negative), and otherwise it returns .FALSE..
00026 *>
00027 *> It is used by the test routine CDRGES to test whether the driver
00028 *> routine CGGES succesfully sorts eigenvalues.
00029 *> \endverbatim
00030 *
00031 *  Arguments:
00032 *  ==========
00033 *
00034 *> \param[in] Z
00035 *> \verbatim
00036 *>          Z is COMPLEX
00037 *>          The numerator part of a complex eigenvalue Z/D.
00038 *> \endverbatim
00039 *>
00040 *> \param[in] D
00041 *> \verbatim
00042 *>          D is COMPLEX
00043 *>          The denominator part of a complex eigenvalue Z/D.
00044 *> \endverbatim
00045 *
00046 *  Authors:
00047 *  ========
00048 *
00049 *> \author Univ. of Tennessee 
00050 *> \author Univ. of California Berkeley 
00051 *> \author Univ. of Colorado Denver 
00052 *> \author NAG Ltd. 
00053 *
00054 *> \date November 2011
00055 *
00056 *> \ingroup complex_eig
00057 *
00058 *  =====================================================================
00059       LOGICAL          FUNCTION CLCTES( Z, D )
00060 *
00061 *  -- LAPACK test routine (version 3.4.0) --
00062 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
00063 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
00064 *     November 2011
00065 *
00066 *     .. Scalar Arguments ..
00067       COMPLEX            D, Z
00068 *     ..
00069 *
00070 *  =====================================================================
00071 *
00072 *     .. Parameters ..
00073 *
00074       REAL               ZERO, ONE
00075       PARAMETER          ( ZERO = 0.0E+0, ONE = 1.0E+0 )
00076       COMPLEX            CZERO
00077       PARAMETER          ( CZERO = ( 0.0E+0, 0.0E+0 ) )
00078 *     ..
00079 *     .. Local Scalars ..
00080       REAL               ZMAX
00081 *     ..
00082 *     .. Intrinsic Functions ..
00083       INTRINSIC          ABS, AIMAG, MAX, REAL, SIGN
00084 *     ..
00085 *     .. Executable Statements ..
00086 *
00087       IF( D.EQ.CZERO ) THEN
00088          CLCTES = ( REAL( Z ).LT.ZERO )
00089       ELSE
00090          IF( REAL( Z ).EQ.ZERO .OR. REAL( D ).EQ.ZERO ) THEN
00091             CLCTES = ( SIGN( ONE, AIMAG( Z ) ).NE.
00092      $               SIGN( ONE, AIMAG( D ) ) )
00093          ELSE IF( AIMAG( Z ).EQ.ZERO .OR. AIMAG( D ).EQ.ZERO ) THEN
00094             CLCTES = ( SIGN( ONE, REAL( Z ) ).NE.
00095      $               SIGN( ONE, REAL( D ) ) )
00096          ELSE
00097             ZMAX = MAX( ABS( REAL( Z ) ), ABS( AIMAG( Z ) ) )
00098             CLCTES = ( ( REAL( Z ) / ZMAX )*REAL( D )+
00099      $               ( AIMAG( Z ) / ZMAX )*AIMAG( D ).LT.ZERO )
00100          END IF
00101       END IF
00102 *
00103       RETURN
00104 *
00105 *     End of CLCTES
00106 *
00107       END
 All Files Functions