Subroutine */
| 1892 | /* *********************************************************************** */ |
| 1893 | |
| 1894 | /* Subroutine */ int slamc5_(integer *beta, integer *p, integer *emin, |
| 1895 | logical *ieee, integer *emax, real *rmax) |
| 1896 | { |
| 1897 | /* System generated locals */ |
| 1898 | integer i__1; |
| 1899 | real r__1; |
| 1900 | |
| 1901 | /* Local variables */ |
| 1902 | static integer i__; |
| 1903 | static real y, z__; |
| 1904 | static integer try__, lexp; |
| 1905 | static real oldy; |
| 1906 | static integer uexp, nbits; |
| 1907 | extern doublereal slamc3_(real *, real *); |
| 1908 | static real recbas; |
| 1909 | static integer exbits, expsum; |
| 1910 | |
| 1911 | |
| 1912 | /* |
| 1913 | -- LAPACK auxiliary routine (version 3.2) -- |
| 1914 | Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. |
| 1915 | November 2006 |
| 1916 | |
| 1917 | |
| 1918 | Purpose |
| 1919 | ======= |
| 1920 | |
| 1921 | SLAMC5 attempts to compute RMAX, the largest machine floating-point |
| 1922 | number, without overflow. It assumes that EMAX + abs(EMIN) sum |
| 1923 | approximately to a power of 2. It will fail on machines where this |
| 1924 | assumption does not hold, for example, the Cyber 205 (EMIN = -28625, |
| 1925 | EMAX = 28718). It will also fail if the value supplied for EMIN is |
| 1926 | too large (i.e. too close to zero), probably with overflow. |
| 1927 | |
| 1928 | Arguments |
| 1929 | ========= |
| 1930 | |
| 1931 | BETA (input) INTEGER |
| 1932 | The base of floating-point arithmetic. |
| 1933 | |
| 1934 | P (input) INTEGER |
| 1935 | The number of base BETA digits in the mantissa of a |
| 1936 | floating-point value. |
| 1937 | |
| 1938 | EMIN (input) INTEGER |
| 1939 | The minimum exponent before (gradual) underflow. |
| 1940 | |
| 1941 | IEEE (input) LOGICAL |
| 1942 | A logical flag specifying whether or not the arithmetic |
| 1943 | system is thought to comply with the IEEE standard. |
| 1944 | |
| 1945 | EMAX (output) INTEGER |
| 1946 | The largest exponent before overflow |
| 1947 | |
| 1948 | RMAX (output) REAL |
| 1949 | The largest machine floating-point number. |
| 1950 | |
| 1951 | ===================================================================== |