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