17faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \brief \b DLAMCH
27faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
37faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  =========== DOCUMENTATION ===========
47faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
57faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* Online html documentation available at
67faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*            http://www.netlib.org/lapack/explore-html/
77faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
87faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  Definition:
97faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  ===========
107faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
117faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*      DOUBLE PRECISION FUNCTION DLAMCH( CMACH )
127faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
137faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
147faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \par Purpose:
157faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  =============
167faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>
177faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \verbatim
187faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>
197faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> DLAMCH determines double precision machine parameters.
207faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \endverbatim
217faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
227faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  Arguments:
237faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  ==========
247faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
257faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \param[in] CMACH
267faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \verbatim
277faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          Specifies the value to be returned by DLAMCH:
287faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          = 'E' or 'e',   DLAMCH := eps
297faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          = 'S' or 's ,   DLAMCH := sfmin
307faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          = 'B' or 'b',   DLAMCH := base
317faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          = 'P' or 'p',   DLAMCH := eps*base
327faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          = 'N' or 'n',   DLAMCH := t
337faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          = 'R' or 'r',   DLAMCH := rnd
347faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          = 'M' or 'm',   DLAMCH := emin
357faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          = 'U' or 'u',   DLAMCH := rmin
367faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          = 'L' or 'l',   DLAMCH := emax
377faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          = 'O' or 'o',   DLAMCH := rmax
387faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          where
397faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          eps   = relative machine precision
407faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          sfmin = safe minimum, such that 1/sfmin does not overflow
417faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          base  = base of the machine
427faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          prec  = eps*base
437faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          t     = number of (base) digits in the mantissa
447faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          rnd   = 1.0 when rounding occurs in addition, 0.0 otherwise
457faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          emin  = minimum exponent before (gradual) underflow
467faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          rmin  = underflow threshold - base**(emin-1)
477faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          emax  = largest exponent before overflow
487faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          rmax  = overflow threshold  - (base**emax)*(1-eps)
497faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \endverbatim
507faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
517faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  Authors:
527faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  ========
537faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
547faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \author Univ. of Tennessee
557faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \author Univ. of California Berkeley
567faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \author Univ. of Colorado Denver
577faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \author NAG Ltd.
587faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
597faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \date November 2011
607faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
617faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \ingroup auxOTHERauxiliary
627faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
637faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  =====================================================================
647faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      DOUBLE PRECISION FUNCTION DLAMCH( CMACH )
657faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
667faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  -- LAPACK auxiliary routine (version 3.4.0) --
677faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
687faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
697faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     November 2011
707faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
717faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     .. Scalar Arguments ..
727faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      CHARACTER          CMACH
737faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     ..
747faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
757faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* =====================================================================
767faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
777faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     .. Parameters ..
787faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      DOUBLE PRECISION   ONE, ZERO
797faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      PARAMETER          ( ONE = 1.0D+0, ZERO = 0.0D+0 )
807faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     ..
817faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     .. Local Scalars ..
827faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      DOUBLE PRECISION   RND, EPS, SFMIN, SMALL, RMACH
837faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     ..
847faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     .. External Functions ..
857faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      LOGICAL            LSAME
867faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      EXTERNAL           LSAME
877faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     ..
887faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     .. Intrinsic Functions ..
897faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      INTRINSIC          DIGITS, EPSILON, HUGE, MAXEXPONENT,
907faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez     $                   MINEXPONENT, RADIX, TINY
917faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     ..
927faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     .. Executable Statements ..
937faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
947faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
957faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     Assume rounding, not chopping. Always.
967faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
977faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      RND = ONE
987faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
997faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      IF( ONE.EQ.RND ) THEN
1007faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         EPS = EPSILON(ZERO) * 0.5
1017faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      ELSE
1027faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         EPS = EPSILON(ZERO)
1037faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      END IF
1047faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
1057faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      IF( LSAME( CMACH, 'E' ) ) THEN
1067faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         RMACH = EPS
1077faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      ELSE IF( LSAME( CMACH, 'S' ) ) THEN
1087faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         SFMIN = TINY(ZERO)
1097faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         SMALL = ONE / HUGE(ZERO)
1107faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         IF( SMALL.GE.SFMIN ) THEN
1117faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
1127faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*           Use SMALL plus a bit, to avoid the possibility of rounding
1137faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*           causing overflow when computing  1/sfmin.
1147faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
1157faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez            SFMIN = SMALL*( ONE+EPS )
1167faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         END IF
1177faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         RMACH = SFMIN
1187faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      ELSE IF( LSAME( CMACH, 'B' ) ) THEN
1197faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         RMACH = RADIX(ZERO)
1207faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      ELSE IF( LSAME( CMACH, 'P' ) ) THEN
1217faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         RMACH = EPS * RADIX(ZERO)
1227faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      ELSE IF( LSAME( CMACH, 'N' ) ) THEN
1237faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         RMACH = DIGITS(ZERO)
1247faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      ELSE IF( LSAME( CMACH, 'R' ) ) THEN
1257faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         RMACH = RND
1267faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      ELSE IF( LSAME( CMACH, 'M' ) ) THEN
1277faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         RMACH = MINEXPONENT(ZERO)
1287faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      ELSE IF( LSAME( CMACH, 'U' ) ) THEN
1297faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         RMACH = tiny(zero)
1307faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      ELSE IF( LSAME( CMACH, 'L' ) ) THEN
1317faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         RMACH = MAXEXPONENT(ZERO)
1327faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      ELSE IF( LSAME( CMACH, 'O' ) ) THEN
1337faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         RMACH = HUGE(ZERO)
1347faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      ELSE
1357faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez         RMACH = ZERO
1367faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      END IF
1377faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
1387faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      DLAMCH = RMACH
1397faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      RETURN
1407faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
1417faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     End of DLAMCH
1427faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
1437faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      END
1447faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez************************************************************************
1457faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \brief \b DLAMC3
1467faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \details
1477faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \b Purpose:
1487faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \verbatim
1497faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> DLAMC3  is intended to force  A  and  B  to be stored prior to doing
1507faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> the addition of  A  and  B ,  for use in situations where optimizers
1517faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> might hold one of these in a register.
1527faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \endverbatim
1537faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \author LAPACK is a software package provided by Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..
1547faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \date November 2011
1557faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \ingroup auxOTHERauxiliary
1567faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>
1577faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \param[in] A
1587faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \verbatim
1597faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          A is a DOUBLE PRECISION
1607faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \endverbatim
1617faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>
1627faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \param[in] B
1637faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \verbatim
1647faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          B is a DOUBLE PRECISION
1657faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>          The values A and B.
1667faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*> \endverbatim
1677faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*>
1687faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      DOUBLE PRECISION FUNCTION DLAMC3( A, B )
1697faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
1707faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*  -- LAPACK auxiliary routine (version 3.4.0) --
1717faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
1727faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     November 2010
1737faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
1747faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     .. Scalar Arguments ..
1757faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      DOUBLE PRECISION   A, B
1767faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     ..
1777faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez* =====================================================================
1787faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
1797faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     .. Executable Statements ..
1807faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
1817faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      DLAMC3 = A + B
1827faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
1837faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      RETURN
1847faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
1857faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*     End of DLAMC3
1867faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
1877faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez      END
1887faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez*
1897faaa9f3f0df9d23790277834d426c3d992ac3baCarlos Hernandez************************************************************************
190