\doxysection{slamch.\+c}
\label{slamch_8c_source}\index{src/libsphinxbase/util/slamch.c@{src/libsphinxbase/util/slamch.c}}

\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{comment}{/*\ src/slamch.f\ -\/-\/\ translated\ by\ f2c\ (version\ 20050501).}}
\DoxyCodeLine{00002\ \textcolor{comment}{\ \ \ You\ must\ link\ the\ resulting\ object\ file\ with\ libf2c:}}
\DoxyCodeLine{00003\ \textcolor{comment}{\ \ \ \ \ \ \ \ on\ Microsoft\ Windows\ system,\ link\ with\ libf2c.lib;}}
\DoxyCodeLine{00004\ \textcolor{comment}{\ \ \ \ \ \ \ \ on\ Linux\ or\ Unix\ systems,\ link\ with\ .../path/to/libf2c.a\ -\/lm}}
\DoxyCodeLine{00005\ \textcolor{comment}{\ \ \ \ \ \ \ \ or,\ if\ you\ install\ libf2c.a\ in\ a\ standard\ place,\ with\ -\/lf2c\ -\/lm}}
\DoxyCodeLine{00006\ \textcolor{comment}{\ \ \ \ \ \ \ \ -\/-\/\ in\ that\ order,\ at\ the\ end\ of\ the\ command\ line,\ as\ in}}
\DoxyCodeLine{00007\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cc\ *.o\ -\/lf2c\ -\/lm}}
\DoxyCodeLine{00008\ \textcolor{comment}{\ \ \ \ \ \ \ \ Source\ for\ libf2c\ is\ in\ /netlib/f2c/libf2c.zip,\ e.g.,}}
\DoxyCodeLine{00009\ \textcolor{comment}{}}
\DoxyCodeLine{00010\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ http://www.netlib.org/f2c/libf2c.zip}}
\DoxyCodeLine{00011\ \textcolor{comment}{*/}}
\DoxyCodeLine{00012\ }
\DoxyCodeLine{00013\ \textcolor{preprocessor}{\#include\ "{}sphinxbase/f2c.h"{}}}
\DoxyCodeLine{00014\ }
\DoxyCodeLine{00015\ \textcolor{preprocessor}{\#ifdef\ \_MSC\_VER}}
\DoxyCodeLine{00016\ \textcolor{preprocessor}{\#pragma\ warning\ (disable:\ 4244)}}
\DoxyCodeLine{00017\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00018\ }
\DoxyCodeLine{00019\ \textcolor{comment}{/*\ Table\ of\ constant\ values\ */}}
\DoxyCodeLine{00020\ }
\DoxyCodeLine{00021\ \textcolor{keyword}{static}\ integer\ c\_\_1\ =\ 1;}
\DoxyCodeLine{00022\ \textcolor{keyword}{static}\ real\ c\_b32\ =\ 0.f;}
\DoxyCodeLine{00023\ }
\DoxyCodeLine{00024\ doublereal}
\DoxyCodeLine{00025\ slamch\_(\textcolor{keywordtype}{char}\ *cmach,\ ftnlen\ cmach\_len)}
\DoxyCodeLine{00026\ \{}
\DoxyCodeLine{00027\ \ \ \ \ \textcolor{comment}{/*\ Initialized\ data\ */}}
\DoxyCodeLine{00028\ }
\DoxyCodeLine{00029\ \ \ \ \ \textcolor{keyword}{static}\ logical\ first\ =\ TRUE\_;}
\DoxyCodeLine{00030\ }
\DoxyCodeLine{00031\ \ \ \ \ \textcolor{comment}{/*\ System\ generated\ locals\ */}}
\DoxyCodeLine{00032\ \ \ \ \ integer\ i\_\_1;}
\DoxyCodeLine{00033\ \ \ \ \ real\ ret\_val;}
\DoxyCodeLine{00034\ }
\DoxyCodeLine{00035\ \ \ \ \ \textcolor{comment}{/*\ Builtin\ functions\ */}}
\DoxyCodeLine{00036\ \ \ \ \ \textcolor{keywordtype}{double}\ pow\_ri(real\ *,\ integer\ *);}
\DoxyCodeLine{00037\ }
\DoxyCodeLine{00038\ \ \ \ \ \textcolor{comment}{/*\ Local\ variables\ */}}
\DoxyCodeLine{00039\ \ \ \ \ \textcolor{keyword}{static}\ real\ t;}
\DoxyCodeLine{00040\ \ \ \ \ \textcolor{keyword}{static}\ integer\ it;}
\DoxyCodeLine{00041\ \ \ \ \ \textcolor{keyword}{static}\ real\ rnd,\ eps,\ base;}
\DoxyCodeLine{00042\ \ \ \ \ \textcolor{keyword}{static}\ integer\ beta;}
\DoxyCodeLine{00043\ \ \ \ \ \textcolor{keyword}{static}\ real\ emin,\ prec,\ emax;}
\DoxyCodeLine{00044\ \ \ \ \ \textcolor{keyword}{static}\ integer\ imin,\ imax;}
\DoxyCodeLine{00045\ \ \ \ \ \textcolor{keyword}{static}\ logical\ lrnd;}
\DoxyCodeLine{00046\ \ \ \ \ \textcolor{keyword}{static}\ real\ rmin,\ rmax,\ rmach;}
\DoxyCodeLine{00047\ \ \ \ \ \textcolor{keyword}{extern}\ logical\ lsame\_(\textcolor{keywordtype}{char}\ *,\ \textcolor{keywordtype}{char}\ *,\ ftnlen,\ ftnlen);}
\DoxyCodeLine{00048\ \ \ \ \ \textcolor{keyword}{static}\ real\ small,\ sfmin;}
\DoxyCodeLine{00049\ \ \ \ \ \textcolor{keyword}{extern}\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}\ slamc2\_(integer\ *,\ integer\ *,\ logical\ *,\ real}
\DoxyCodeLine{00050\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *,\ integer\ *,\ real\ *,\ integer\ *,}
\DoxyCodeLine{00051\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ real\ *);}
\DoxyCodeLine{00052\ }
\DoxyCodeLine{00053\ }
\DoxyCodeLine{00054\ \textcolor{comment}{/*\ \ -\/-\/\ LAPACK\ auxiliary\ routine\ (version\ 3.0)\ -\/-\/\ */}}
\DoxyCodeLine{00055\ \textcolor{comment}{/*\ \ \ \ \ Univ.\ of\ Tennessee,\ Univ.\ of\ California\ Berkeley,\ NAG\ Ltd.,\ */}}
\DoxyCodeLine{00056\ \textcolor{comment}{/*\ \ \ \ \ Courant\ Institute,\ Argonne\ National\ Lab,\ and\ Rice\ University\ */}}
\DoxyCodeLine{00057\ \textcolor{comment}{/*\ \ \ \ \ October\ 31,\ 1992\ */}}
\DoxyCodeLine{00058\ }
\DoxyCodeLine{00059\ \textcolor{comment}{/*\ \ \ \ \ ..\ Scalar\ Arguments\ ..\ */}}
\DoxyCodeLine{00060\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00061\ }
\DoxyCodeLine{00062\ \textcolor{comment}{/*\ \ Purpose\ */}}
\DoxyCodeLine{00063\ \textcolor{comment}{/*\ \ =======\ */}}
\DoxyCodeLine{00064\ }
\DoxyCodeLine{00065\ \textcolor{comment}{/*\ \ SLAMCH\ determines\ single\ precision\ machine\ parameters.\ */}}
\DoxyCodeLine{00066\ }
\DoxyCodeLine{00067\ \textcolor{comment}{/*\ \ Arguments\ */}}
\DoxyCodeLine{00068\ \textcolor{comment}{/*\ \ =========\ */}}
\DoxyCodeLine{00069\ }
\DoxyCodeLine{00070\ \textcolor{comment}{/*\ \ CMACH\ \ \ (input)\ CHARACTER*1\ */}}
\DoxyCodeLine{00071\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ Specifies\ the\ value\ to\ be\ returned\ by\ SLAMCH:\ */}}
\DoxyCodeLine{00072\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ =\ 'E'\ or\ 'e',\ \ \ SLAMCH\ :=\ eps\ */}}
\DoxyCodeLine{00073\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ =\ 'S'\ or\ 's\ ,\ \ \ SLAMCH\ :=\ sfmin\ */}}
\DoxyCodeLine{00074\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ =\ 'B'\ or\ 'b',\ \ \ SLAMCH\ :=\ base\ */}}
\DoxyCodeLine{00075\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ =\ 'P'\ or\ 'p',\ \ \ SLAMCH\ :=\ eps*base\ */}}
\DoxyCodeLine{00076\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ =\ 'N'\ or\ 'n',\ \ \ SLAMCH\ :=\ t\ */}}
\DoxyCodeLine{00077\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ =\ 'R'\ or\ 'r',\ \ \ SLAMCH\ :=\ rnd\ */}}
\DoxyCodeLine{00078\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ =\ 'M'\ or\ 'm',\ \ \ SLAMCH\ :=\ emin\ */}}
\DoxyCodeLine{00079\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ =\ 'U'\ or\ 'u',\ \ \ SLAMCH\ :=\ rmin\ */}}
\DoxyCodeLine{00080\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ =\ 'L'\ or\ 'l',\ \ \ SLAMCH\ :=\ emax\ */}}
\DoxyCodeLine{00081\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ =\ 'O'\ or\ 'o',\ \ \ SLAMCH\ :=\ rmax\ */}}
\DoxyCodeLine{00082\ }
\DoxyCodeLine{00083\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ where\ */}}
\DoxyCodeLine{00084\ }
\DoxyCodeLine{00085\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ eps\ \ \ =\ relative\ machine\ precision\ */}}
\DoxyCodeLine{00086\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ sfmin\ =\ safe\ minimum,\ such\ that\ 1/sfmin\ does\ not\ overflow\ */}}
\DoxyCodeLine{00087\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ base\ \ =\ base\ of\ the\ machine\ */}}
\DoxyCodeLine{00088\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ prec\ \ =\ eps*base\ */}}
\DoxyCodeLine{00089\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ t\ \ \ \ \ =\ number\ of\ (base)\ digits\ in\ the\ mantissa\ */}}
\DoxyCodeLine{00090\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ rnd\ \ \ =\ 1.0\ when\ rounding\ occurs\ in\ addition,\ 0.0\ otherwise\ */}}
\DoxyCodeLine{00091\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ emin\ \ =\ minimum\ exponent\ before\ (gradual)\ underflow\ */}}
\DoxyCodeLine{00092\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ rmin\ \ =\ underflow\ threshold\ -\/\ base**(emin-\/1)\ */}}
\DoxyCodeLine{00093\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ emax\ \ =\ largest\ exponent\ before\ overflow\ */}}
\DoxyCodeLine{00094\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ rmax\ \ =\ overflow\ threshold\ \ -\/\ (base**emax)*(1-\/eps)\ */}}
\DoxyCodeLine{00095\ }
\DoxyCodeLine{00096\ \textcolor{comment}{/*\ =====================================================================\ */}}
\DoxyCodeLine{00097\ }
\DoxyCodeLine{00098\ \textcolor{comment}{/*\ \ \ \ \ ..\ Parameters\ ..\ */}}
\DoxyCodeLine{00099\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00100\ \textcolor{comment}{/*\ \ \ \ \ ..\ Local\ Scalars\ ..\ */}}
\DoxyCodeLine{00101\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00102\ \textcolor{comment}{/*\ \ \ \ \ ..\ External\ Functions\ ..\ */}}
\DoxyCodeLine{00103\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00104\ \textcolor{comment}{/*\ \ \ \ \ ..\ External\ Subroutines\ ..\ */}}
\DoxyCodeLine{00105\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00106\ \textcolor{comment}{/*\ \ \ \ \ ..\ Save\ statement\ ..\ */}}
\DoxyCodeLine{00107\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00108\ \textcolor{comment}{/*\ \ \ \ \ ..\ Data\ statements\ ..\ */}}
\DoxyCodeLine{00109\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00110\ \textcolor{comment}{/*\ \ \ \ \ ..\ Executable\ Statements\ ..\ */}}
\DoxyCodeLine{00111\ }
\DoxyCodeLine{00112\ \ \ \ \ \textcolor{keywordflow}{if}\ (first)\ \{}
\DoxyCodeLine{00113\ \ \ \ \ \ \ \ \ first\ =\ FALSE\_;}
\DoxyCodeLine{00114\ \ \ \ \ \ \ \ \ slamc2\_(\&beta,\ \&it,\ \&lrnd,\ \&eps,\ \&imin,\ \&rmin,\ \&imax,\ \&rmax);}
\DoxyCodeLine{00115\ \ \ \ \ \ \ \ \ base\ =\ (real)\ beta;}
\DoxyCodeLine{00116\ \ \ \ \ \ \ \ \ t\ =\ (real)\ it;}
\DoxyCodeLine{00117\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (lrnd)\ \{}
\DoxyCodeLine{00118\ \ \ \ \ \ \ \ \ \ \ \ \ rnd\ =\ 1.f;}
\DoxyCodeLine{00119\ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_1\ =\ 1\ -\/\ it;}
\DoxyCodeLine{00120\ \ \ \ \ \ \ \ \ \ \ \ \ eps\ =\ pow\_ri(\&base,\ \&i\_\_1)\ /\ 2;}
\DoxyCodeLine{00121\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00122\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00123\ \ \ \ \ \ \ \ \ \ \ \ \ rnd\ =\ 0.f;}
\DoxyCodeLine{00124\ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_1\ =\ 1\ -\/\ it;}
\DoxyCodeLine{00125\ \ \ \ \ \ \ \ \ \ \ \ \ eps\ =\ pow\_ri(\&base,\ \&i\_\_1);}
\DoxyCodeLine{00126\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00127\ \ \ \ \ \ \ \ \ prec\ =\ eps\ *\ base;}
\DoxyCodeLine{00128\ \ \ \ \ \ \ \ \ emin\ =\ (real)\ imin;}
\DoxyCodeLine{00129\ \ \ \ \ \ \ \ \ emax\ =\ (real)\ imax;}
\DoxyCodeLine{00130\ \ \ \ \ \ \ \ \ sfmin\ =\ rmin;}
\DoxyCodeLine{00131\ \ \ \ \ \ \ \ \ small\ =\ 1.f\ /\ rmax;}
\DoxyCodeLine{00132\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (small\ >=\ sfmin)\ \{}
\DoxyCodeLine{00133\ }
\DoxyCodeLine{00134\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ Use\ SMALL\ plus\ a\ bit,\ to\ avoid\ the\ possibility\ of\ rounding\ */}}
\DoxyCodeLine{00135\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ causing\ overflow\ when\ computing\ \ 1/sfmin.\ */}}
\DoxyCodeLine{00136\ }
\DoxyCodeLine{00137\ \ \ \ \ \ \ \ \ \ \ \ \ sfmin\ =\ small\ *\ (eps\ +\ 1.f);}
\DoxyCodeLine{00138\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00139\ \ \ \ \ \}}
\DoxyCodeLine{00140\ }
\DoxyCodeLine{00141\ \ \ \ \ \textcolor{keywordflow}{if}\ (lsame\_(cmach,\ \textcolor{stringliteral}{"{}E"{}},\ (ftnlen)\ 1,\ (ftnlen)\ 1))\ \{}
\DoxyCodeLine{00142\ \ \ \ \ \ \ \ \ rmach\ =\ eps;}
\DoxyCodeLine{00143\ \ \ \ \ \}}
\DoxyCodeLine{00144\ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (lsame\_(cmach,\ \textcolor{stringliteral}{"{}S"{}},\ (ftnlen)\ 1,\ (ftnlen)\ 1))\ \{}
\DoxyCodeLine{00145\ \ \ \ \ \ \ \ \ rmach\ =\ sfmin;}
\DoxyCodeLine{00146\ \ \ \ \ \}}
\DoxyCodeLine{00147\ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (lsame\_(cmach,\ \textcolor{stringliteral}{"{}B"{}},\ (ftnlen)\ 1,\ (ftnlen)\ 1))\ \{}
\DoxyCodeLine{00148\ \ \ \ \ \ \ \ \ rmach\ =\ base;}
\DoxyCodeLine{00149\ \ \ \ \ \}}
\DoxyCodeLine{00150\ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (lsame\_(cmach,\ \textcolor{stringliteral}{"{}P"{}},\ (ftnlen)\ 1,\ (ftnlen)\ 1))\ \{}
\DoxyCodeLine{00151\ \ \ \ \ \ \ \ \ rmach\ =\ prec;}
\DoxyCodeLine{00152\ \ \ \ \ \}}
\DoxyCodeLine{00153\ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (lsame\_(cmach,\ \textcolor{stringliteral}{"{}N"{}},\ (ftnlen)\ 1,\ (ftnlen)\ 1))\ \{}
\DoxyCodeLine{00154\ \ \ \ \ \ \ \ \ rmach\ =\ t;}
\DoxyCodeLine{00155\ \ \ \ \ \}}
\DoxyCodeLine{00156\ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (lsame\_(cmach,\ \textcolor{stringliteral}{"{}R"{}},\ (ftnlen)\ 1,\ (ftnlen)\ 1))\ \{}
\DoxyCodeLine{00157\ \ \ \ \ \ \ \ \ rmach\ =\ rnd;}
\DoxyCodeLine{00158\ \ \ \ \ \}}
\DoxyCodeLine{00159\ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (lsame\_(cmach,\ \textcolor{stringliteral}{"{}M"{}},\ (ftnlen)\ 1,\ (ftnlen)\ 1))\ \{}
\DoxyCodeLine{00160\ \ \ \ \ \ \ \ \ rmach\ =\ emin;}
\DoxyCodeLine{00161\ \ \ \ \ \}}
\DoxyCodeLine{00162\ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (lsame\_(cmach,\ \textcolor{stringliteral}{"{}U"{}},\ (ftnlen)\ 1,\ (ftnlen)\ 1))\ \{}
\DoxyCodeLine{00163\ \ \ \ \ \ \ \ \ rmach\ =\ rmin;}
\DoxyCodeLine{00164\ \ \ \ \ \}}
\DoxyCodeLine{00165\ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (lsame\_(cmach,\ \textcolor{stringliteral}{"{}L"{}},\ (ftnlen)\ 1,\ (ftnlen)\ 1))\ \{}
\DoxyCodeLine{00166\ \ \ \ \ \ \ \ \ rmach\ =\ emax;}
\DoxyCodeLine{00167\ \ \ \ \ \}}
\DoxyCodeLine{00168\ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (lsame\_(cmach,\ \textcolor{stringliteral}{"{}O"{}},\ (ftnlen)\ 1,\ (ftnlen)\ 1))\ \{}
\DoxyCodeLine{00169\ \ \ \ \ \ \ \ \ rmach\ =\ rmax;}
\DoxyCodeLine{00170\ \ \ \ \ \}}
\DoxyCodeLine{00171\ }
\DoxyCodeLine{00172\ \ \ \ \ ret\_val\ =\ rmach;}
\DoxyCodeLine{00173\ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00174\ }
\DoxyCodeLine{00175\ \textcolor{comment}{/*\ \ \ \ \ End\ of\ SLAMCH\ */}}
\DoxyCodeLine{00176\ }
\DoxyCodeLine{00177\ \}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ slamch\_\ */}}
\DoxyCodeLine{00178\ }
\DoxyCodeLine{00179\ }
\DoxyCodeLine{00180\ \textcolor{comment}{/*\ ***********************************************************************\ */}}
\DoxyCodeLine{00181\ }
\DoxyCodeLine{00182\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}}
\DoxyCodeLine{00183\ slamc1\_(integer\ *\ beta,\ integer\ *\ t,\ logical\ *\ rnd,\ logical\ *\ ieee1)}
\DoxyCodeLine{00184\ \{}
\DoxyCodeLine{00185\ \ \ \ \ \textcolor{comment}{/*\ Initialized\ data\ */}}
\DoxyCodeLine{00186\ }
\DoxyCodeLine{00187\ \ \ \ \ \textcolor{keyword}{static}\ logical\ first\ =\ TRUE\_;}
\DoxyCodeLine{00188\ }
\DoxyCodeLine{00189\ \ \ \ \ \textcolor{comment}{/*\ System\ generated\ locals\ */}}
\DoxyCodeLine{00190\ \ \ \ \ real\ r\_\_1,\ r\_\_2;}
\DoxyCodeLine{00191\ }
\DoxyCodeLine{00192\ \ \ \ \ \textcolor{comment}{/*\ Local\ variables\ */}}
\DoxyCodeLine{00193\ \ \ \ \ \textcolor{keyword}{static}\ real\ a,\ b,\ c\_\_,\ f,\ t1,\ t2;}
\DoxyCodeLine{00194\ \ \ \ \ \textcolor{keyword}{static}\ integer\ lt;}
\DoxyCodeLine{00195\ \ \ \ \ \textcolor{keyword}{static}\ real\ one,\ qtr;}
\DoxyCodeLine{00196\ \ \ \ \ \textcolor{keyword}{static}\ logical\ lrnd;}
\DoxyCodeLine{00197\ \ \ \ \ \textcolor{keyword}{static}\ integer\ lbeta;}
\DoxyCodeLine{00198\ \ \ \ \ \textcolor{keyword}{static}\ real\ savec;}
\DoxyCodeLine{00199\ \ \ \ \ \textcolor{keyword}{static}\ logical\ lieee1;}
\DoxyCodeLine{00200\ \ \ \ \ \textcolor{keyword}{extern}\ doublereal\ slamc3\_(real\ *,\ real\ *);}
\DoxyCodeLine{00201\ }
\DoxyCodeLine{00202\ }
\DoxyCodeLine{00203\ \textcolor{comment}{/*\ \ -\/-\/\ LAPACK\ auxiliary\ routine\ (version\ 3.0)\ -\/-\/\ */}}
\DoxyCodeLine{00204\ \textcolor{comment}{/*\ \ \ \ \ Univ.\ of\ Tennessee,\ Univ.\ of\ California\ Berkeley,\ NAG\ Ltd.,\ */}}
\DoxyCodeLine{00205\ \textcolor{comment}{/*\ \ \ \ \ Courant\ Institute,\ Argonne\ National\ Lab,\ and\ Rice\ University\ */}}
\DoxyCodeLine{00206\ \textcolor{comment}{/*\ \ \ \ \ October\ 31,\ 1992\ */}}
\DoxyCodeLine{00207\ }
\DoxyCodeLine{00208\ \textcolor{comment}{/*\ \ \ \ \ ..\ Scalar\ Arguments\ ..\ */}}
\DoxyCodeLine{00209\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00210\ }
\DoxyCodeLine{00211\ \textcolor{comment}{/*\ \ Purpose\ */}}
\DoxyCodeLine{00212\ \textcolor{comment}{/*\ \ =======\ */}}
\DoxyCodeLine{00213\ }
\DoxyCodeLine{00214\ \textcolor{comment}{/*\ \ SLAMC1\ determines\ the\ machine\ parameters\ given\ by\ BETA,\ T,\ RND,\ and\ */}}
\DoxyCodeLine{00215\ \textcolor{comment}{/*\ \ IEEE1.\ */}}
\DoxyCodeLine{00216\ }
\DoxyCodeLine{00217\ \textcolor{comment}{/*\ \ Arguments\ */}}
\DoxyCodeLine{00218\ \textcolor{comment}{/*\ \ =========\ */}}
\DoxyCodeLine{00219\ }
\DoxyCodeLine{00220\ \textcolor{comment}{/*\ \ BETA\ \ \ \ (output)\ INTEGER\ */}}
\DoxyCodeLine{00221\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ base\ of\ the\ machine.\ */}}
\DoxyCodeLine{00222\ }
\DoxyCodeLine{00223\ \textcolor{comment}{/*\ \ T\ \ \ \ \ \ \ (output)\ INTEGER\ */}}
\DoxyCodeLine{00224\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ number\ of\ (\ BETA\ )\ digits\ in\ the\ mantissa.\ */}}
\DoxyCodeLine{00225\ }
\DoxyCodeLine{00226\ \textcolor{comment}{/*\ \ RND\ \ \ \ \ (output)\ LOGICAL\ */}}
\DoxyCodeLine{00227\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ Specifies\ whether\ proper\ rounding\ \ (\ RND\ =\ .TRUE.\ )\ \ or\ */}}
\DoxyCodeLine{00228\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ chopping\ \ (\ RND\ =\ .FALSE.\ )\ \ occurs\ in\ addition.\ This\ may\ not\ */}}
\DoxyCodeLine{00229\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ be\ a\ reliable\ guide\ to\ the\ way\ in\ which\ the\ machine\ performs\ */}}
\DoxyCodeLine{00230\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ its\ arithmetic.\ */}}
\DoxyCodeLine{00231\ }
\DoxyCodeLine{00232\ \textcolor{comment}{/*\ \ IEEE1\ \ \ (output)\ LOGICAL\ */}}
\DoxyCodeLine{00233\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ Specifies\ whether\ rounding\ appears\ to\ be\ done\ in\ the\ IEEE\ */}}
\DoxyCodeLine{00234\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ 'round\ to\ nearest'\ style.\ */}}
\DoxyCodeLine{00235\ }
\DoxyCodeLine{00236\ \textcolor{comment}{/*\ \ Further\ Details\ */}}
\DoxyCodeLine{00237\ \textcolor{comment}{/*\ \ ===============\ */}}
\DoxyCodeLine{00238\ }
\DoxyCodeLine{00239\ \textcolor{comment}{/*\ \ The\ routine\ is\ based\ on\ the\ routine\ \ ENVRON\ \ by\ Malcolm\ and\ */}}
\DoxyCodeLine{00240\ \textcolor{comment}{/*\ \ incorporates\ suggestions\ by\ Gentleman\ and\ Marovich.\ See\ */}}
\DoxyCodeLine{00241\ }
\DoxyCodeLine{00242\ \textcolor{comment}{/*\ \ \ \ \ Malcolm\ M.\ A.\ (1972)\ Algorithms\ to\ reveal\ properties\ of\ */}}
\DoxyCodeLine{00243\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ floating-\/point\ arithmetic.\ Comms.\ of\ the\ ACM,\ 15,\ 949-\/951.\ */}}
\DoxyCodeLine{00244\ }
\DoxyCodeLine{00245\ \textcolor{comment}{/*\ \ \ \ \ Gentleman\ W.\ M.\ and\ Marovich\ S.\ B.\ (1974)\ More\ on\ algorithms\ */}}
\DoxyCodeLine{00246\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ that\ reveal\ properties\ of\ floating\ point\ arithmetic\ units.\ */}}
\DoxyCodeLine{00247\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Comms.\ of\ the\ ACM,\ 17,\ 276-\/277.\ */}}
\DoxyCodeLine{00248\ }
\DoxyCodeLine{00249\ \textcolor{comment}{/*\ =====================================================================\ */}}
\DoxyCodeLine{00250\ }
\DoxyCodeLine{00251\ \textcolor{comment}{/*\ \ \ \ \ ..\ Local\ Scalars\ ..\ */}}
\DoxyCodeLine{00252\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00253\ \textcolor{comment}{/*\ \ \ \ \ ..\ External\ Functions\ ..\ */}}
\DoxyCodeLine{00254\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00255\ \textcolor{comment}{/*\ \ \ \ \ ..\ Save\ statement\ ..\ */}}
\DoxyCodeLine{00256\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00257\ \textcolor{comment}{/*\ \ \ \ \ ..\ Data\ statements\ ..\ */}}
\DoxyCodeLine{00258\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00259\ \textcolor{comment}{/*\ \ \ \ \ ..\ Executable\ Statements\ ..\ */}}
\DoxyCodeLine{00260\ }
\DoxyCodeLine{00261\ \ \ \ \ \textcolor{keywordflow}{if}\ (first)\ \{}
\DoxyCodeLine{00262\ \ \ \ \ \ \ \ \ first\ =\ FALSE\_;}
\DoxyCodeLine{00263\ \ \ \ \ \ \ \ \ one\ =\ 1.f;}
\DoxyCodeLine{00264\ }
\DoxyCodeLine{00265\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ LBETA,\ \ LIEEE1,\ \ LT\ and\ \ LRND\ \ are\ the\ \ local\ values\ \ of\ \ BETA,\ */}}
\DoxyCodeLine{00266\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ IEEE1,\ T\ and\ RND.\ */}}
\DoxyCodeLine{00267\ }
\DoxyCodeLine{00268\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Throughout\ this\ routine\ \ we\ use\ the\ function\ \ SLAMC3\ \ to\ ensure\ */}}
\DoxyCodeLine{00269\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ that\ relevant\ values\ are\ \ stored\ and\ not\ held\ in\ registers,\ \ or\ */}}
\DoxyCodeLine{00270\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ are\ not\ affected\ by\ optimizers.\ */}}
\DoxyCodeLine{00271\ }
\DoxyCodeLine{00272\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Compute\ \ a\ =\ 2.0**m\ \ with\ the\ \ smallest\ positive\ integer\ m\ such\ */}}
\DoxyCodeLine{00273\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ that\ */}}
\DoxyCodeLine{00274\ }
\DoxyCodeLine{00275\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ fl(\ a\ +\ 1.0\ )\ =\ a.\ */}}
\DoxyCodeLine{00276\ }
\DoxyCodeLine{00277\ \ \ \ \ \ \ \ \ a\ =\ 1.f;}
\DoxyCodeLine{00278\ \ \ \ \ \ \ \ \ c\_\_\ =\ 1.f;}
\DoxyCodeLine{00279\ }
\DoxyCodeLine{00280\ \textcolor{comment}{/*\ +\ \ \ \ \ \ \ WHILE(\ C.EQ.ONE\ )LOOP\ */}}
\DoxyCodeLine{00281\ \ \ \ \ \ \ L10:}
\DoxyCodeLine{00282\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\_\_\ ==\ one)\ \{}
\DoxyCodeLine{00283\ \ \ \ \ \ \ \ \ \ \ \ \ a\ *=\ 2;}
\DoxyCodeLine{00284\ \ \ \ \ \ \ \ \ \ \ \ \ c\_\_\ =\ slamc3\_(\&a,\ \&one);}
\DoxyCodeLine{00285\ \ \ \ \ \ \ \ \ \ \ \ \ r\_\_1\ =\ -\/a;}
\DoxyCodeLine{00286\ \ \ \ \ \ \ \ \ \ \ \ \ c\_\_\ =\ slamc3\_(\&c\_\_,\ \&r\_\_1);}
\DoxyCodeLine{00287\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ L10;}
\DoxyCodeLine{00288\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00289\ \textcolor{comment}{/*\ +\ \ \ \ \ \ \ END\ WHILE\ */}}
\DoxyCodeLine{00290\ }
\DoxyCodeLine{00291\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Now\ compute\ \ b\ =\ 2.0**m\ \ with\ the\ smallest\ positive\ integer\ m\ */}}
\DoxyCodeLine{00292\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ such\ that\ */}}
\DoxyCodeLine{00293\ }
\DoxyCodeLine{00294\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ fl(\ a\ +\ b\ )\ .gt.\ a.\ */}}
\DoxyCodeLine{00295\ }
\DoxyCodeLine{00296\ \ \ \ \ \ \ \ \ b\ =\ 1.f;}
\DoxyCodeLine{00297\ \ \ \ \ \ \ \ \ c\_\_\ =\ slamc3\_(\&a,\ \&b);}
\DoxyCodeLine{00298\ }
\DoxyCodeLine{00299\ \textcolor{comment}{/*\ +\ \ \ \ \ \ \ WHILE(\ C.EQ.A\ )LOOP\ */}}
\DoxyCodeLine{00300\ \ \ \ \ \ \ L20:}
\DoxyCodeLine{00301\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\_\_\ ==\ a)\ \{}
\DoxyCodeLine{00302\ \ \ \ \ \ \ \ \ \ \ \ \ b\ *=\ 2;}
\DoxyCodeLine{00303\ \ \ \ \ \ \ \ \ \ \ \ \ c\_\_\ =\ slamc3\_(\&a,\ \&b);}
\DoxyCodeLine{00304\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ L20;}
\DoxyCodeLine{00305\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00306\ \textcolor{comment}{/*\ +\ \ \ \ \ \ \ END\ WHILE\ */}}
\DoxyCodeLine{00307\ }
\DoxyCodeLine{00308\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Now\ compute\ the\ base.\ \ a\ and\ c\ \ are\ neighbouring\ floating\ point\ */}}
\DoxyCodeLine{00309\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ numbers\ \ in\ the\ \ interval\ \ (\ beta**t,\ beta**(\ t\ +\ 1\ )\ )\ \ and\ so\ */}}
\DoxyCodeLine{00310\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ their\ difference\ is\ beta.\ Adding\ 0.25\ to\ c\ is\ to\ ensure\ that\ it\ */}}
\DoxyCodeLine{00311\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ is\ truncated\ to\ beta\ and\ not\ (\ beta\ -\/\ 1\ ).\ */}}
\DoxyCodeLine{00312\ }
\DoxyCodeLine{00313\ \ \ \ \ \ \ \ \ qtr\ =\ one\ /\ 4;}
\DoxyCodeLine{00314\ \ \ \ \ \ \ \ \ savec\ =\ c\_\_;}
\DoxyCodeLine{00315\ \ \ \ \ \ \ \ \ r\_\_1\ =\ -\/a;}
\DoxyCodeLine{00316\ \ \ \ \ \ \ \ \ c\_\_\ =\ slamc3\_(\&c\_\_,\ \&r\_\_1);}
\DoxyCodeLine{00317\ \ \ \ \ \ \ \ \ lbeta\ =\ c\_\_\ +\ qtr;}
\DoxyCodeLine{00318\ }
\DoxyCodeLine{00319\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Now\ determine\ whether\ rounding\ or\ chopping\ occurs,\ \ by\ adding\ a\ */}}
\DoxyCodeLine{00320\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ bit\ \ less\ \ than\ \ beta/2\ \ and\ a\ \ bit\ \ more\ \ than\ \ beta/2\ \ to\ \ a.\ */}}
\DoxyCodeLine{00321\ }
\DoxyCodeLine{00322\ \ \ \ \ \ \ \ \ b\ =\ (real)\ lbeta;}
\DoxyCodeLine{00323\ \ \ \ \ \ \ \ \ r\_\_1\ =\ b\ /\ 2;}
\DoxyCodeLine{00324\ \ \ \ \ \ \ \ \ r\_\_2\ =\ -\/b\ /\ 100;}
\DoxyCodeLine{00325\ \ \ \ \ \ \ \ \ f\ =\ slamc3\_(\&r\_\_1,\ \&r\_\_2);}
\DoxyCodeLine{00326\ \ \ \ \ \ \ \ \ c\_\_\ =\ slamc3\_(\&f,\ \&a);}
\DoxyCodeLine{00327\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\_\_\ ==\ a)\ \{}
\DoxyCodeLine{00328\ \ \ \ \ \ \ \ \ \ \ \ \ lrnd\ =\ TRUE\_;}
\DoxyCodeLine{00329\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00330\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00331\ \ \ \ \ \ \ \ \ \ \ \ \ lrnd\ =\ FALSE\_;}
\DoxyCodeLine{00332\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00333\ \ \ \ \ \ \ \ \ r\_\_1\ =\ b\ /\ 2;}
\DoxyCodeLine{00334\ \ \ \ \ \ \ \ \ r\_\_2\ =\ b\ /\ 100;}
\DoxyCodeLine{00335\ \ \ \ \ \ \ \ \ f\ =\ slamc3\_(\&r\_\_1,\ \&r\_\_2);}
\DoxyCodeLine{00336\ \ \ \ \ \ \ \ \ c\_\_\ =\ slamc3\_(\&f,\ \&a);}
\DoxyCodeLine{00337\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (lrnd\ \&\&\ c\_\_\ ==\ a)\ \{}
\DoxyCodeLine{00338\ \ \ \ \ \ \ \ \ \ \ \ \ lrnd\ =\ FALSE\_;}
\DoxyCodeLine{00339\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00340\ }
\DoxyCodeLine{00341\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Try\ and\ decide\ whether\ rounding\ is\ done\ in\ the\ \ IEEE\ \ 'round\ to\ */}}
\DoxyCodeLine{00342\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ nearest'\ style.\ B/2\ is\ half\ a\ unit\ in\ the\ last\ place\ of\ the\ two\ */}}
\DoxyCodeLine{00343\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ numbers\ A\ and\ SAVEC.\ Furthermore,\ A\ is\ even,\ i.e.\ has\ last\ \ bit\ */}}
\DoxyCodeLine{00344\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ zero,\ and\ SAVEC\ is\ odd.\ Thus\ adding\ B/2\ to\ A\ should\ not\ \ change\ */}}
\DoxyCodeLine{00345\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ A,\ but\ adding\ B/2\ to\ SAVEC\ should\ change\ SAVEC.\ */}}
\DoxyCodeLine{00346\ }
\DoxyCodeLine{00347\ \ \ \ \ \ \ \ \ r\_\_1\ =\ b\ /\ 2;}
\DoxyCodeLine{00348\ \ \ \ \ \ \ \ \ t1\ =\ slamc3\_(\&r\_\_1,\ \&a);}
\DoxyCodeLine{00349\ \ \ \ \ \ \ \ \ r\_\_1\ =\ b\ /\ 2;}
\DoxyCodeLine{00350\ \ \ \ \ \ \ \ \ t2\ =\ slamc3\_(\&r\_\_1,\ \&savec);}
\DoxyCodeLine{00351\ \ \ \ \ \ \ \ \ lieee1\ =\ t1\ ==\ a\ \&\&\ t2\ >\ savec\ \&\&\ lrnd;}
\DoxyCodeLine{00352\ }
\DoxyCodeLine{00353\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Now\ find\ \ the\ \ mantissa,\ t.\ \ It\ should\ \ be\ the\ \ integer\ part\ of\ */}}
\DoxyCodeLine{00354\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ log\ to\ the\ base\ beta\ of\ a,\ \ however\ it\ is\ safer\ to\ determine\ \ t\ */}}
\DoxyCodeLine{00355\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ by\ powering.\ \ So\ we\ find\ t\ as\ the\ smallest\ positive\ integer\ for\ */}}
\DoxyCodeLine{00356\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ which\ */}}
\DoxyCodeLine{00357\ }
\DoxyCodeLine{00358\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ fl(\ beta**t\ +\ 1.0\ )\ =\ 1.0.\ */}}
\DoxyCodeLine{00359\ }
\DoxyCodeLine{00360\ \ \ \ \ \ \ \ \ lt\ =\ 0;}
\DoxyCodeLine{00361\ \ \ \ \ \ \ \ \ a\ =\ 1.f;}
\DoxyCodeLine{00362\ \ \ \ \ \ \ \ \ c\_\_\ =\ 1.f;}
\DoxyCodeLine{00363\ }
\DoxyCodeLine{00364\ \textcolor{comment}{/*\ +\ \ \ \ \ \ \ WHILE(\ C.EQ.ONE\ )LOOP\ */}}
\DoxyCodeLine{00365\ \ \ \ \ \ \ L30:}
\DoxyCodeLine{00366\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (c\_\_\ ==\ one)\ \{}
\DoxyCodeLine{00367\ \ \ \ \ \ \ \ \ \ \ \ \ ++lt;}
\DoxyCodeLine{00368\ \ \ \ \ \ \ \ \ \ \ \ \ a\ *=\ lbeta;}
\DoxyCodeLine{00369\ \ \ \ \ \ \ \ \ \ \ \ \ c\_\_\ =\ slamc3\_(\&a,\ \&one);}
\DoxyCodeLine{00370\ \ \ \ \ \ \ \ \ \ \ \ \ r\_\_1\ =\ -\/a;}
\DoxyCodeLine{00371\ \ \ \ \ \ \ \ \ \ \ \ \ c\_\_\ =\ slamc3\_(\&c\_\_,\ \&r\_\_1);}
\DoxyCodeLine{00372\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ L30;}
\DoxyCodeLine{00373\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00374\ \textcolor{comment}{/*\ +\ \ \ \ \ \ \ END\ WHILE\ */}}
\DoxyCodeLine{00375\ }
\DoxyCodeLine{00376\ \ \ \ \ \}}
\DoxyCodeLine{00377\ }
\DoxyCodeLine{00378\ \ \ \ \ *beta\ =\ lbeta;}
\DoxyCodeLine{00379\ \ \ \ \ *t\ =\ lt;}
\DoxyCodeLine{00380\ \ \ \ \ *rnd\ =\ lrnd;}
\DoxyCodeLine{00381\ \ \ \ \ *ieee1\ =\ lieee1;}
\DoxyCodeLine{00382\ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{00383\ }
\DoxyCodeLine{00384\ \textcolor{comment}{/*\ \ \ \ \ End\ of\ SLAMC1\ */}}
\DoxyCodeLine{00385\ }
\DoxyCodeLine{00386\ \}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ slamc1\_\ */}}
\DoxyCodeLine{00387\ }
\DoxyCodeLine{00388\ }
\DoxyCodeLine{00389\ \textcolor{comment}{/*\ ***********************************************************************\ */}}
\DoxyCodeLine{00390\ }
\DoxyCodeLine{00391\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}}
\DoxyCodeLine{00392\ slamc2\_(integer\ *\ beta,\ integer\ *\ t,\ logical\ *\ rnd,\ real\ *}
\DoxyCodeLine{00393\ \ \ \ \ \ \ \ \ eps,\ integer\ *\ emin,\ real\ *\ rmin,\ integer\ *\ emax,\ real\ *\ rmax)}
\DoxyCodeLine{00394\ \{}
\DoxyCodeLine{00395\ \ \ \ \ \textcolor{comment}{/*\ Initialized\ data\ */}}
\DoxyCodeLine{00396\ }
\DoxyCodeLine{00397\ \ \ \ \ \textcolor{keyword}{static}\ logical\ first\ =\ TRUE\_;}
\DoxyCodeLine{00398\ \ \ \ \ \textcolor{keyword}{static}\ logical\ iwarn\ =\ FALSE\_;}
\DoxyCodeLine{00399\ }
\DoxyCodeLine{00400\ \ \ \ \ \textcolor{comment}{/*\ Format\ strings\ */}}
\DoxyCodeLine{00401\ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{char}\ fmt\_9999[]\ =}
\DoxyCodeLine{00402\ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}(//\(\backslash\)002\ WARNING.\ The\ value\ EMIN\ may\ be\ incorre"{}}}
\DoxyCodeLine{00403\ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}ct:-\/\(\backslash\)002,\(\backslash\)002\ \ EMIN\ =\ \(\backslash\)002,i8,/\(\backslash\)002\ If,\ after\ inspection,\ the\ va"{}}}
\DoxyCodeLine{00404\ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}lue\ EMIN\ looks\(\backslash\)002,\(\backslash\)002\ acceptable\ please\ comment\ out\ \(\backslash\)002,/\(\backslash\)002"{}}}
\DoxyCodeLine{00405\ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}\ the\ IF\ block\ as\ marked\ within\ the\ code\ of\ routine\(\backslash\)002,\(\backslash\)002\ SLAM"{}}}
\DoxyCodeLine{00406\ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}C2,\(\backslash\)002,/\(\backslash\)002\ otherwise\ supply\ EMIN\ explicitly.\(\backslash\)002,/)"{}};}
\DoxyCodeLine{00407\ }
\DoxyCodeLine{00408\ \ \ \ \ \textcolor{comment}{/*\ System\ generated\ locals\ */}}
\DoxyCodeLine{00409\ \ \ \ \ integer\ i\_\_1;}
\DoxyCodeLine{00410\ \ \ \ \ real\ r\_\_1,\ r\_\_2,\ r\_\_3,\ r\_\_4,\ r\_\_5;}
\DoxyCodeLine{00411\ }
\DoxyCodeLine{00412\ \ \ \ \ \textcolor{comment}{/*\ Builtin\ functions\ */}}
\DoxyCodeLine{00413\ \ \ \ \ \textcolor{keywordtype}{double}\ pow\_ri(real\ *,\ integer\ *);}
\DoxyCodeLine{00414\ \ \ \ \ integer\ s\_wsfe(cilist\ *),\ do\_fio(integer\ *,\ \textcolor{keywordtype}{char}\ *,\ ftnlen),}
\DoxyCodeLine{00415\ \ \ \ \ \ \ \ \ e\_wsfe(\textcolor{keywordtype}{void});}
\DoxyCodeLine{00416\ }
\DoxyCodeLine{00417\ \ \ \ \ \textcolor{comment}{/*\ Local\ variables\ */}}
\DoxyCodeLine{00418\ \ \ \ \ \textcolor{keyword}{static}\ real\ a,\ b,\ c\_\_;}
\DoxyCodeLine{00419\ \ \ \ \ \textcolor{keyword}{static}\ integer\ i\_\_,\ lt;}
\DoxyCodeLine{00420\ \ \ \ \ \textcolor{keyword}{static}\ real\ one,\ two;}
\DoxyCodeLine{00421\ \ \ \ \ \textcolor{keyword}{static}\ logical\ ieee;}
\DoxyCodeLine{00422\ \ \ \ \ \textcolor{keyword}{static}\ real\ half;}
\DoxyCodeLine{00423\ \ \ \ \ \textcolor{keyword}{static}\ logical\ lrnd;}
\DoxyCodeLine{00424\ \ \ \ \ \textcolor{keyword}{static}\ real\ leps,\ zero;}
\DoxyCodeLine{00425\ \ \ \ \ \textcolor{keyword}{static}\ integer\ lbeta;}
\DoxyCodeLine{00426\ \ \ \ \ \textcolor{keyword}{static}\ real\ rbase;}
\DoxyCodeLine{00427\ \ \ \ \ \textcolor{keyword}{static}\ integer\ lemin,\ lemax,\ gnmin;}
\DoxyCodeLine{00428\ \ \ \ \ \textcolor{keyword}{static}\ real\ small;}
\DoxyCodeLine{00429\ \ \ \ \ \textcolor{keyword}{static}\ integer\ gpmin;}
\DoxyCodeLine{00430\ \ \ \ \ \textcolor{keyword}{static}\ real\ third,\ lrmin,\ lrmax,\ sixth;}
\DoxyCodeLine{00431\ \ \ \ \ \textcolor{keyword}{static}\ logical\ lieee1;}
\DoxyCodeLine{00432\ \ \ \ \ \textcolor{keyword}{extern}\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}\ slamc1\_(integer\ *,\ integer\ *,\ logical\ *,}
\DoxyCodeLine{00433\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ logical\ *);}
\DoxyCodeLine{00434\ \ \ \ \ \textcolor{keyword}{extern}\ doublereal\ slamc3\_(real\ *,\ real\ *);}
\DoxyCodeLine{00435\ \ \ \ \ \textcolor{keyword}{extern}\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}\ slamc4\_(integer\ *,\ real\ *,\ integer\ *),}
\DoxyCodeLine{00436\ \ \ \ \ \ \ \ \ slamc5\_(integer\ *,\ integer\ *,\ integer\ *,\ logical\ *,\ integer\ *,}
\DoxyCodeLine{00437\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ real\ *);}
\DoxyCodeLine{00438\ \ \ \ \ \textcolor{keyword}{static}\ integer\ ngnmin,\ ngpmin;}
\DoxyCodeLine{00439\ }
\DoxyCodeLine{00440\ \ \ \ \ \textcolor{comment}{/*\ Fortran\ I/O\ blocks\ */}}
\DoxyCodeLine{00441\ \ \ \ \ \textcolor{keyword}{static}\ cilist\ io\_\_\_58\ =\ \{\ 0,\ 6,\ 0,\ fmt\_9999,\ 0\ \};}
\DoxyCodeLine{00442\ }
\DoxyCodeLine{00443\ }
\DoxyCodeLine{00444\ }
\DoxyCodeLine{00445\ \textcolor{comment}{/*\ \ -\/-\/\ LAPACK\ auxiliary\ routine\ (version\ 3.0)\ -\/-\/\ */}}
\DoxyCodeLine{00446\ \textcolor{comment}{/*\ \ \ \ \ Univ.\ of\ Tennessee,\ Univ.\ of\ California\ Berkeley,\ NAG\ Ltd.,\ */}}
\DoxyCodeLine{00447\ \textcolor{comment}{/*\ \ \ \ \ Courant\ Institute,\ Argonne\ National\ Lab,\ and\ Rice\ University\ */}}
\DoxyCodeLine{00448\ \textcolor{comment}{/*\ \ \ \ \ October\ 31,\ 1992\ */}}
\DoxyCodeLine{00449\ }
\DoxyCodeLine{00450\ \textcolor{comment}{/*\ \ \ \ \ ..\ Scalar\ Arguments\ ..\ */}}
\DoxyCodeLine{00451\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00452\ }
\DoxyCodeLine{00453\ \textcolor{comment}{/*\ \ Purpose\ */}}
\DoxyCodeLine{00454\ \textcolor{comment}{/*\ \ =======\ */}}
\DoxyCodeLine{00455\ }
\DoxyCodeLine{00456\ \textcolor{comment}{/*\ \ SLAMC2\ determines\ the\ machine\ parameters\ specified\ in\ its\ argument\ */}}
\DoxyCodeLine{00457\ \textcolor{comment}{/*\ \ list.\ */}}
\DoxyCodeLine{00458\ }
\DoxyCodeLine{00459\ \textcolor{comment}{/*\ \ Arguments\ */}}
\DoxyCodeLine{00460\ \textcolor{comment}{/*\ \ =========\ */}}
\DoxyCodeLine{00461\ }
\DoxyCodeLine{00462\ \textcolor{comment}{/*\ \ BETA\ \ \ \ (output)\ INTEGER\ */}}
\DoxyCodeLine{00463\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ base\ of\ the\ machine.\ */}}
\DoxyCodeLine{00464\ }
\DoxyCodeLine{00465\ \textcolor{comment}{/*\ \ T\ \ \ \ \ \ \ (output)\ INTEGER\ */}}
\DoxyCodeLine{00466\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ number\ of\ (\ BETA\ )\ digits\ in\ the\ mantissa.\ */}}
\DoxyCodeLine{00467\ }
\DoxyCodeLine{00468\ \textcolor{comment}{/*\ \ RND\ \ \ \ \ (output)\ LOGICAL\ */}}
\DoxyCodeLine{00469\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ Specifies\ whether\ proper\ rounding\ \ (\ RND\ =\ .TRUE.\ )\ \ or\ */}}
\DoxyCodeLine{00470\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ chopping\ \ (\ RND\ =\ .FALSE.\ )\ \ occurs\ in\ addition.\ This\ may\ not\ */}}
\DoxyCodeLine{00471\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ be\ a\ reliable\ guide\ to\ the\ way\ in\ which\ the\ machine\ performs\ */}}
\DoxyCodeLine{00472\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ its\ arithmetic.\ */}}
\DoxyCodeLine{00473\ }
\DoxyCodeLine{00474\ \textcolor{comment}{/*\ \ EPS\ \ \ \ \ (output)\ REAL\ */}}
\DoxyCodeLine{00475\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ smallest\ positive\ number\ such\ that\ */}}
\DoxyCodeLine{00476\ }
\DoxyCodeLine{00477\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ fl(\ 1.0\ -\/\ EPS\ )\ .LT.\ 1.0,\ */}}
\DoxyCodeLine{00478\ }
\DoxyCodeLine{00479\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ where\ fl\ denotes\ the\ computed\ value.\ */}}
\DoxyCodeLine{00480\ }
\DoxyCodeLine{00481\ \textcolor{comment}{/*\ \ EMIN\ \ \ \ (output)\ INTEGER\ */}}
\DoxyCodeLine{00482\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ minimum\ exponent\ before\ (gradual)\ underflow\ occurs.\ */}}
\DoxyCodeLine{00483\ }
\DoxyCodeLine{00484\ \textcolor{comment}{/*\ \ RMIN\ \ \ \ (output)\ REAL\ */}}
\DoxyCodeLine{00485\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ smallest\ normalized\ number\ for\ the\ machine,\ given\ by\ */}}
\DoxyCodeLine{00486\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ BASE**(\ EMIN\ -\/\ 1\ ),\ where\ \ BASE\ \ is\ the\ floating\ point\ value\ */}}
\DoxyCodeLine{00487\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ of\ BETA.\ */}}
\DoxyCodeLine{00488\ }
\DoxyCodeLine{00489\ \textcolor{comment}{/*\ \ EMAX\ \ \ \ (output)\ INTEGER\ */}}
\DoxyCodeLine{00490\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ maximum\ exponent\ before\ overflow\ occurs.\ */}}
\DoxyCodeLine{00491\ }
\DoxyCodeLine{00492\ \textcolor{comment}{/*\ \ RMAX\ \ \ \ (output)\ REAL\ */}}
\DoxyCodeLine{00493\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ largest\ positive\ number\ for\ the\ machine,\ given\ by\ */}}
\DoxyCodeLine{00494\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ BASE**EMAX\ *\ (\ 1\ -\/\ EPS\ ),\ where\ \ BASE\ \ is\ the\ floating\ point\ */}}
\DoxyCodeLine{00495\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ value\ of\ BETA.\ */}}
\DoxyCodeLine{00496\ }
\DoxyCodeLine{00497\ \textcolor{comment}{/*\ \ Further\ Details\ */}}
\DoxyCodeLine{00498\ \textcolor{comment}{/*\ \ ===============\ */}}
\DoxyCodeLine{00499\ }
\DoxyCodeLine{00500\ \textcolor{comment}{/*\ \ The\ computation\ of\ \ EPS\ \ is\ based\ on\ a\ routine\ PARANOIA\ by\ */}}
\DoxyCodeLine{00501\ \textcolor{comment}{/*\ \ W.\ Kahan\ of\ the\ University\ of\ California\ at\ Berkeley.\ */}}
\DoxyCodeLine{00502\ }
\DoxyCodeLine{00503\ \textcolor{comment}{/*\ =====================================================================\ */}}
\DoxyCodeLine{00504\ }
\DoxyCodeLine{00505\ \textcolor{comment}{/*\ \ \ \ \ ..\ Local\ Scalars\ ..\ */}}
\DoxyCodeLine{00506\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00507\ \textcolor{comment}{/*\ \ \ \ \ ..\ External\ Functions\ ..\ */}}
\DoxyCodeLine{00508\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00509\ \textcolor{comment}{/*\ \ \ \ \ ..\ External\ Subroutines\ ..\ */}}
\DoxyCodeLine{00510\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00511\ \textcolor{comment}{/*\ \ \ \ \ ..\ Intrinsic\ Functions\ ..\ */}}
\DoxyCodeLine{00512\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00513\ \textcolor{comment}{/*\ \ \ \ \ ..\ Save\ statement\ ..\ */}}
\DoxyCodeLine{00514\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00515\ \textcolor{comment}{/*\ \ \ \ \ ..\ Data\ statements\ ..\ */}}
\DoxyCodeLine{00516\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00517\ \textcolor{comment}{/*\ \ \ \ \ ..\ Executable\ Statements\ ..\ */}}
\DoxyCodeLine{00518\ }
\DoxyCodeLine{00519\ \ \ \ \ \textcolor{keywordflow}{if}\ (first)\ \{}
\DoxyCodeLine{00520\ \ \ \ \ \ \ \ \ first\ =\ FALSE\_;}
\DoxyCodeLine{00521\ \ \ \ \ \ \ \ \ zero\ =\ 0.f;}
\DoxyCodeLine{00522\ \ \ \ \ \ \ \ \ one\ =\ 1.f;}
\DoxyCodeLine{00523\ \ \ \ \ \ \ \ \ two\ =\ 2.f;}
\DoxyCodeLine{00524\ }
\DoxyCodeLine{00525\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ LBETA,\ LT,\ LRND,\ LEPS,\ LEMIN\ and\ LRMIN\ \ are\ the\ local\ values\ of\ */}}
\DoxyCodeLine{00526\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ BETA,\ T,\ RND,\ EPS,\ EMIN\ and\ RMIN.\ */}}
\DoxyCodeLine{00527\ }
\DoxyCodeLine{00528\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Throughout\ this\ routine\ \ we\ use\ the\ function\ \ SLAMC3\ \ to\ ensure\ */}}
\DoxyCodeLine{00529\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ that\ relevant\ values\ are\ stored\ \ and\ not\ held\ in\ registers,\ \ or\ */}}
\DoxyCodeLine{00530\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ are\ not\ affected\ by\ optimizers.\ */}}
\DoxyCodeLine{00531\ }
\DoxyCodeLine{00532\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ SLAMC1\ returns\ the\ parameters\ \ LBETA,\ LT,\ LRND\ and\ LIEEE1.\ */}}
\DoxyCodeLine{00533\ }
\DoxyCodeLine{00534\ \ \ \ \ \ \ \ \ slamc1\_(\&lbeta,\ \&lt,\ \&lrnd,\ \&lieee1);}
\DoxyCodeLine{00535\ }
\DoxyCodeLine{00536\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Start\ to\ find\ EPS.\ */}}
\DoxyCodeLine{00537\ }
\DoxyCodeLine{00538\ \ \ \ \ \ \ \ \ b\ =\ (real)\ lbeta;}
\DoxyCodeLine{00539\ \ \ \ \ \ \ \ \ i\_\_1\ =\ -\/lt;}
\DoxyCodeLine{00540\ \ \ \ \ \ \ \ \ a\ =\ pow\_ri(\&b,\ \&i\_\_1);}
\DoxyCodeLine{00541\ \ \ \ \ \ \ \ \ leps\ =\ a;}
\DoxyCodeLine{00542\ }
\DoxyCodeLine{00543\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Try\ some\ tricks\ to\ see\ whether\ or\ not\ this\ is\ the\ correct\ \ EPS.\ */}}
\DoxyCodeLine{00544\ }
\DoxyCodeLine{00545\ \ \ \ \ \ \ \ \ b\ =\ two\ /\ 3;}
\DoxyCodeLine{00546\ \ \ \ \ \ \ \ \ half\ =\ one\ /\ 2;}
\DoxyCodeLine{00547\ \ \ \ \ \ \ \ \ r\_\_1\ =\ -\/half;}
\DoxyCodeLine{00548\ \ \ \ \ \ \ \ \ sixth\ =\ slamc3\_(\&b,\ \&r\_\_1);}
\DoxyCodeLine{00549\ \ \ \ \ \ \ \ \ third\ =\ slamc3\_(\&sixth,\ \&sixth);}
\DoxyCodeLine{00550\ \ \ \ \ \ \ \ \ r\_\_1\ =\ -\/half;}
\DoxyCodeLine{00551\ \ \ \ \ \ \ \ \ b\ =\ slamc3\_(\&third,\ \&r\_\_1);}
\DoxyCodeLine{00552\ \ \ \ \ \ \ \ \ b\ =\ slamc3\_(\&b,\ \&sixth);}
\DoxyCodeLine{00553\ \ \ \ \ \ \ \ \ b\ =\ dabs(b);}
\DoxyCodeLine{00554\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (b\ <\ leps)\ \{}
\DoxyCodeLine{00555\ \ \ \ \ \ \ \ \ \ \ \ \ b\ =\ leps;}
\DoxyCodeLine{00556\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00557\ }
\DoxyCodeLine{00558\ \ \ \ \ \ \ \ \ leps\ =\ 1.f;}
\DoxyCodeLine{00559\ }
\DoxyCodeLine{00560\ \textcolor{comment}{/*\ +\ \ \ \ \ \ \ WHILE(\ (\ LEPS.GT.B\ ).AND.(\ B.GT.ZERO\ )\ )LOOP\ */}}
\DoxyCodeLine{00561\ \ \ \ \ \ \ L10:}
\DoxyCodeLine{00562\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (leps\ >\ b\ \&\&\ b\ >\ zero)\ \{}
\DoxyCodeLine{00563\ \ \ \ \ \ \ \ \ \ \ \ \ leps\ =\ b;}
\DoxyCodeLine{00564\ \ \ \ \ \ \ \ \ \ \ \ \ r\_\_1\ =\ half\ *\ leps;}
\DoxyCodeLine{00565\ \textcolor{comment}{/*\ Computing\ 5th\ power\ */}}
\DoxyCodeLine{00566\ \ \ \ \ \ \ \ \ \ \ \ \ r\_\_3\ =\ two,\ r\_\_4\ =\ r\_\_3,\ r\_\_3\ *=\ r\_\_3;}
\DoxyCodeLine{00567\ \textcolor{comment}{/*\ Computing\ 2nd\ power\ */}}
\DoxyCodeLine{00568\ \ \ \ \ \ \ \ \ \ \ \ \ r\_\_5\ =\ leps;}
\DoxyCodeLine{00569\ \ \ \ \ \ \ \ \ \ \ \ \ r\_\_2\ =\ r\_\_4\ *\ (r\_\_3\ *\ r\_\_3)\ *\ (r\_\_5\ *\ r\_\_5);}
\DoxyCodeLine{00570\ \ \ \ \ \ \ \ \ \ \ \ \ c\_\_\ =\ slamc3\_(\&r\_\_1,\ \&r\_\_2);}
\DoxyCodeLine{00571\ \ \ \ \ \ \ \ \ \ \ \ \ r\_\_1\ =\ -\/c\_\_;}
\DoxyCodeLine{00572\ \ \ \ \ \ \ \ \ \ \ \ \ c\_\_\ =\ slamc3\_(\&half,\ \&r\_\_1);}
\DoxyCodeLine{00573\ \ \ \ \ \ \ \ \ \ \ \ \ b\ =\ slamc3\_(\&half,\ \&c\_\_);}
\DoxyCodeLine{00574\ \ \ \ \ \ \ \ \ \ \ \ \ r\_\_1\ =\ -\/b;}
\DoxyCodeLine{00575\ \ \ \ \ \ \ \ \ \ \ \ \ c\_\_\ =\ slamc3\_(\&half,\ \&r\_\_1);}
\DoxyCodeLine{00576\ \ \ \ \ \ \ \ \ \ \ \ \ b\ =\ slamc3\_(\&half,\ \&c\_\_);}
\DoxyCodeLine{00577\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ L10;}
\DoxyCodeLine{00578\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00579\ \textcolor{comment}{/*\ +\ \ \ \ \ \ \ END\ WHILE\ */}}
\DoxyCodeLine{00580\ }
\DoxyCodeLine{00581\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (a\ <\ leps)\ \{}
\DoxyCodeLine{00582\ \ \ \ \ \ \ \ \ \ \ \ \ leps\ =\ a;}
\DoxyCodeLine{00583\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00584\ }
\DoxyCodeLine{00585\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Computation\ of\ EPS\ complete.\ */}}
\DoxyCodeLine{00586\ }
\DoxyCodeLine{00587\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Now\ find\ \ EMIN.\ \ Let\ A\ =\ +\ or\ -\/\ 1,\ and\ +\ or\ -\/\ (1\ +\ BASE**(-\/3)).\ */}}
\DoxyCodeLine{00588\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Keep\ dividing\ \ A\ by\ BETA\ until\ (gradual)\ underflow\ occurs.\ This\ */}}
\DoxyCodeLine{00589\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ is\ detected\ when\ we\ cannot\ recover\ the\ previous\ A.\ */}}
\DoxyCodeLine{00590\ }
\DoxyCodeLine{00591\ \ \ \ \ \ \ \ \ rbase\ =\ one\ /\ lbeta;}
\DoxyCodeLine{00592\ \ \ \ \ \ \ \ \ small\ =\ one;}
\DoxyCodeLine{00593\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (i\_\_\ =\ 1;\ i\_\_\ <=\ 3;\ ++i\_\_)\ \{}
\DoxyCodeLine{00594\ \ \ \ \ \ \ \ \ \ \ \ \ r\_\_1\ =\ small\ *\ rbase;}
\DoxyCodeLine{00595\ \ \ \ \ \ \ \ \ \ \ \ \ small\ =\ slamc3\_(\&r\_\_1,\ \&zero);}
\DoxyCodeLine{00596\ \textcolor{comment}{/*\ L20:\ */}}
\DoxyCodeLine{00597\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00598\ \ \ \ \ \ \ \ \ a\ =\ slamc3\_(\&one,\ \&small);}
\DoxyCodeLine{00599\ \ \ \ \ \ \ \ \ slamc4\_(\&ngpmin,\ \&one,\ \&lbeta);}
\DoxyCodeLine{00600\ \ \ \ \ \ \ \ \ r\_\_1\ =\ -\/one;}
\DoxyCodeLine{00601\ \ \ \ \ \ \ \ \ slamc4\_(\&ngnmin,\ \&r\_\_1,\ \&lbeta);}
\DoxyCodeLine{00602\ \ \ \ \ \ \ \ \ slamc4\_(\&gpmin,\ \&a,\ \&lbeta);}
\DoxyCodeLine{00603\ \ \ \ \ \ \ \ \ r\_\_1\ =\ -\/a;}
\DoxyCodeLine{00604\ \ \ \ \ \ \ \ \ slamc4\_(\&gnmin,\ \&r\_\_1,\ \&lbeta);}
\DoxyCodeLine{00605\ \ \ \ \ \ \ \ \ ieee\ =\ FALSE\_;}
\DoxyCodeLine{00606\ }
\DoxyCodeLine{00607\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (ngpmin\ ==\ ngnmin\ \&\&\ gpmin\ ==\ gnmin)\ \{}
\DoxyCodeLine{00608\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (ngpmin\ ==\ gpmin)\ \{}
\DoxyCodeLine{00609\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lemin\ =\ ngpmin;}
\DoxyCodeLine{00610\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ (\ Non\ twos-\/complement\ machines,\ no\ gradual\ underflow;\ */}}
\DoxyCodeLine{00611\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ e.g.,\ \ VAX\ )\ */}}
\DoxyCodeLine{00612\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00613\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (gpmin\ -\/\ ngpmin\ ==\ 3)\ \{}
\DoxyCodeLine{00614\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lemin\ =\ ngpmin\ -\/\ 1\ +\ lt;}
\DoxyCodeLine{00615\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ieee\ =\ TRUE\_;}
\DoxyCodeLine{00616\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ (\ Non\ twos-\/complement\ machines,\ with\ gradual\ underflow;\ */}}
\DoxyCodeLine{00617\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ e.g.,\ IEEE\ standard\ followers\ )\ */}}
\DoxyCodeLine{00618\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00619\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00620\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lemin\ =\ min(ngpmin,\ gpmin);}
\DoxyCodeLine{00621\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ (\ A\ guess;\ no\ known\ machine\ )\ */}}
\DoxyCodeLine{00622\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ iwarn\ =\ TRUE\_;}
\DoxyCodeLine{00623\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00624\ }
\DoxyCodeLine{00625\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00626\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (ngpmin\ ==\ gpmin\ \&\&\ ngnmin\ ==\ gnmin)\ \{}
\DoxyCodeLine{00627\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ ((i\_\_1\ =\ ngpmin\ -\/\ ngnmin,\ abs(i\_\_1))\ ==\ 1)\ \{}
\DoxyCodeLine{00628\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lemin\ =\ max(ngpmin,\ ngnmin);}
\DoxyCodeLine{00629\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ (\ Twos-\/complement\ machines,\ no\ gradual\ underflow;\ */}}
\DoxyCodeLine{00630\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ e.g.,\ CYBER\ 205\ )\ */}}
\DoxyCodeLine{00631\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00632\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00633\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lemin\ =\ min(ngpmin,\ ngnmin);}
\DoxyCodeLine{00634\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ (\ A\ guess;\ no\ known\ machine\ )\ */}}
\DoxyCodeLine{00635\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ iwarn\ =\ TRUE\_;}
\DoxyCodeLine{00636\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00637\ }
\DoxyCodeLine{00638\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00639\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ ((i\_\_1\ =\ ngpmin\ -\/\ ngnmin,\ abs(i\_\_1))\ ==\ 1}
\DoxyCodeLine{00640\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \&\&\ gpmin\ ==\ gnmin)\ \{}
\DoxyCodeLine{00641\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (gpmin\ -\/\ min(ngpmin,\ ngnmin)\ ==\ 3)\ \{}
\DoxyCodeLine{00642\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lemin\ =\ max(ngpmin,\ ngnmin)\ -\/\ 1\ +\ lt;}
\DoxyCodeLine{00643\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ (\ Twos-\/complement\ machines\ with\ gradual\ underflow;\ */}}
\DoxyCodeLine{00644\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ no\ known\ machine\ )\ */}}
\DoxyCodeLine{00645\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00646\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00647\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lemin\ =\ min(ngpmin,\ ngnmin);}
\DoxyCodeLine{00648\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ (\ A\ guess;\ no\ known\ machine\ )\ */}}
\DoxyCodeLine{00649\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ iwarn\ =\ TRUE\_;}
\DoxyCodeLine{00650\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00651\ }
\DoxyCodeLine{00652\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00653\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00654\ \textcolor{comment}{/*\ Computing\ MIN\ */}}
\DoxyCodeLine{00655\ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_1\ =\ min(ngpmin,\ ngnmin),\ i\_\_1\ =\ min(i\_\_1,\ gpmin);}
\DoxyCodeLine{00656\ \ \ \ \ \ \ \ \ \ \ \ \ lemin\ =\ min(i\_\_1,\ gnmin);}
\DoxyCodeLine{00657\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ (\ A\ guess;\ no\ known\ machine\ )\ */}}
\DoxyCodeLine{00658\ \ \ \ \ \ \ \ \ \ \ \ \ iwarn\ =\ TRUE\_;}
\DoxyCodeLine{00659\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00660\ \textcolor{comment}{/*\ **\ */}}
\DoxyCodeLine{00661\ \textcolor{comment}{/*\ Comment\ out\ this\ if\ block\ if\ EMIN\ is\ ok\ */}}
\DoxyCodeLine{00662\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (iwarn)\ \{}
\DoxyCodeLine{00663\ \ \ \ \ \ \ \ \ \ \ \ \ first\ =\ TRUE\_;}
\DoxyCodeLine{00664\ \ \ \ \ \ \ \ \ \ \ \ \ s\_wsfe(\&io\_\_\_58);}
\DoxyCodeLine{00665\ \ \ \ \ \ \ \ \ \ \ \ \ do\_fio(\&c\_\_1,\ (\textcolor{keywordtype}{char}\ *)\ \&lemin,\ (ftnlen)\ \textcolor{keyword}{sizeof}(integer));}
\DoxyCodeLine{00666\ \ \ \ \ \ \ \ \ \ \ \ \ e\_wsfe();}
\DoxyCodeLine{00667\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00668\ \textcolor{comment}{/*\ **\ */}}
\DoxyCodeLine{00669\ }
\DoxyCodeLine{00670\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Assume\ IEEE\ arithmetic\ if\ we\ found\ denormalised\ \ numbers\ above,\ */}}
\DoxyCodeLine{00671\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ or\ if\ arithmetic\ seems\ to\ round\ in\ the\ \ IEEE\ style,\ \ determined\ */}}
\DoxyCodeLine{00672\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ in\ routine\ SLAMC1.\ A\ true\ IEEE\ machine\ should\ have\ both\ \ things\ */}}
\DoxyCodeLine{00673\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ true;\ however,\ faulty\ machines\ may\ have\ one\ or\ the\ other.\ */}}
\DoxyCodeLine{00674\ }
\DoxyCodeLine{00675\ \ \ \ \ \ \ \ \ ieee\ =\ ieee\ ||\ lieee1;}
\DoxyCodeLine{00676\ }
\DoxyCodeLine{00677\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Compute\ \ RMIN\ by\ successive\ division\ by\ \ BETA.\ We\ could\ compute\ */}}
\DoxyCodeLine{00678\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ RMIN\ as\ BASE**(\ EMIN\ -\/\ 1\ ),\ \ but\ some\ machines\ underflow\ during\ */}}
\DoxyCodeLine{00679\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ this\ computation.\ */}}
\DoxyCodeLine{00680\ }
\DoxyCodeLine{00681\ \ \ \ \ \ \ \ \ lrmin\ =\ 1.f;}
\DoxyCodeLine{00682\ \ \ \ \ \ \ \ \ i\_\_1\ =\ 1\ -\/\ lemin;}
\DoxyCodeLine{00683\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (i\_\_\ =\ 1;\ i\_\_\ <=\ i\_\_1;\ ++i\_\_)\ \{}
\DoxyCodeLine{00684\ \ \ \ \ \ \ \ \ \ \ \ \ r\_\_1\ =\ lrmin\ *\ rbase;}
\DoxyCodeLine{00685\ \ \ \ \ \ \ \ \ \ \ \ \ lrmin\ =\ slamc3\_(\&r\_\_1,\ \&zero);}
\DoxyCodeLine{00686\ \textcolor{comment}{/*\ L30:\ */}}
\DoxyCodeLine{00687\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00688\ }
\DoxyCodeLine{00689\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Finally,\ call\ SLAMC5\ to\ compute\ EMAX\ and\ RMAX.\ */}}
\DoxyCodeLine{00690\ }
\DoxyCodeLine{00691\ \ \ \ \ \ \ \ \ slamc5\_(\&lbeta,\ \&lt,\ \&lemin,\ \&ieee,\ \&lemax,\ \&lrmax);}
\DoxyCodeLine{00692\ \ \ \ \ \}}
\DoxyCodeLine{00693\ }
\DoxyCodeLine{00694\ \ \ \ \ *beta\ =\ lbeta;}
\DoxyCodeLine{00695\ \ \ \ \ *t\ =\ lt;}
\DoxyCodeLine{00696\ \ \ \ \ *rnd\ =\ lrnd;}
\DoxyCodeLine{00697\ \ \ \ \ *eps\ =\ leps;}
\DoxyCodeLine{00698\ \ \ \ \ *emin\ =\ lemin;}
\DoxyCodeLine{00699\ \ \ \ \ *rmin\ =\ lrmin;}
\DoxyCodeLine{00700\ \ \ \ \ *emax\ =\ lemax;}
\DoxyCodeLine{00701\ \ \ \ \ *rmax\ =\ lrmax;}
\DoxyCodeLine{00702\ }
\DoxyCodeLine{00703\ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{00704\ }
\DoxyCodeLine{00705\ }
\DoxyCodeLine{00706\ \textcolor{comment}{/*\ \ \ \ \ End\ of\ SLAMC2\ */}}
\DoxyCodeLine{00707\ }
\DoxyCodeLine{00708\ \}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ slamc2\_\ */}}
\DoxyCodeLine{00709\ }
\DoxyCodeLine{00710\ }
\DoxyCodeLine{00711\ \textcolor{comment}{/*\ ***********************************************************************\ */}}
\DoxyCodeLine{00712\ }
\DoxyCodeLine{00713\ doublereal}
\DoxyCodeLine{00714\ slamc3\_(real\ *\ a,\ real\ *\ b)}
\DoxyCodeLine{00715\ \{}
\DoxyCodeLine{00716\ \ \ \ \ \textcolor{comment}{/*\ System\ generated\ locals\ */}}
\DoxyCodeLine{00717\ \ \ \ \ real\ ret\_val;}
\DoxyCodeLine{00718\ }
\DoxyCodeLine{00719\ }
\DoxyCodeLine{00720\ \textcolor{comment}{/*\ \ -\/-\/\ LAPACK\ auxiliary\ routine\ (version\ 3.0)\ -\/-\/\ */}}
\DoxyCodeLine{00721\ \textcolor{comment}{/*\ \ \ \ \ Univ.\ of\ Tennessee,\ Univ.\ of\ California\ Berkeley,\ NAG\ Ltd.,\ */}}
\DoxyCodeLine{00722\ \textcolor{comment}{/*\ \ \ \ \ Courant\ Institute,\ Argonne\ National\ Lab,\ and\ Rice\ University\ */}}
\DoxyCodeLine{00723\ \textcolor{comment}{/*\ \ \ \ \ October\ 31,\ 1992\ */}}
\DoxyCodeLine{00724\ }
\DoxyCodeLine{00725\ \textcolor{comment}{/*\ \ \ \ \ ..\ Scalar\ Arguments\ ..\ */}}
\DoxyCodeLine{00726\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00727\ }
\DoxyCodeLine{00728\ \textcolor{comment}{/*\ \ Purpose\ */}}
\DoxyCodeLine{00729\ \textcolor{comment}{/*\ \ =======\ */}}
\DoxyCodeLine{00730\ }
\DoxyCodeLine{00731\ \textcolor{comment}{/*\ \ SLAMC3\ \ is\ intended\ to\ force\ \ A\ \ and\ \ B\ \ to\ be\ stored\ prior\ to\ doing\ */}}
\DoxyCodeLine{00732\ \textcolor{comment}{/*\ \ the\ addition\ of\ \ A\ \ and\ \ B\ ,\ \ for\ use\ in\ situations\ where\ optimizers\ */}}
\DoxyCodeLine{00733\ \textcolor{comment}{/*\ \ might\ hold\ one\ of\ these\ in\ a\ register.\ */}}
\DoxyCodeLine{00734\ }
\DoxyCodeLine{00735\ \textcolor{comment}{/*\ \ Arguments\ */}}
\DoxyCodeLine{00736\ \textcolor{comment}{/*\ \ =========\ */}}
\DoxyCodeLine{00737\ }
\DoxyCodeLine{00738\ \textcolor{comment}{/*\ \ A,\ B\ \ \ \ (input)\ REAL\ */}}
\DoxyCodeLine{00739\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ values\ A\ and\ B.\ */}}
\DoxyCodeLine{00740\ }
\DoxyCodeLine{00741\ \textcolor{comment}{/*\ =====================================================================\ */}}
\DoxyCodeLine{00742\ }
\DoxyCodeLine{00743\ \textcolor{comment}{/*\ \ \ \ \ ..\ Executable\ Statements\ ..\ */}}
\DoxyCodeLine{00744\ }
\DoxyCodeLine{00745\ \ \ \ \ ret\_val\ =\ *a\ +\ *b;}
\DoxyCodeLine{00746\ }
\DoxyCodeLine{00747\ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00748\ }
\DoxyCodeLine{00749\ \textcolor{comment}{/*\ \ \ \ \ End\ of\ SLAMC3\ */}}
\DoxyCodeLine{00750\ }
\DoxyCodeLine{00751\ \}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ slamc3\_\ */}}
\DoxyCodeLine{00752\ }
\DoxyCodeLine{00753\ }
\DoxyCodeLine{00754\ \textcolor{comment}{/*\ ***********************************************************************\ */}}
\DoxyCodeLine{00755\ }
\DoxyCodeLine{00756\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}}
\DoxyCodeLine{00757\ slamc4\_(integer\ *\ emin,\ real\ *\ start,\ integer\ *\ base)}
\DoxyCodeLine{00758\ \{}
\DoxyCodeLine{00759\ \ \ \ \ \textcolor{comment}{/*\ System\ generated\ locals\ */}}
\DoxyCodeLine{00760\ \ \ \ \ integer\ i\_\_1;}
\DoxyCodeLine{00761\ \ \ \ \ real\ r\_\_1;}
\DoxyCodeLine{00762\ }
\DoxyCodeLine{00763\ \ \ \ \ \textcolor{comment}{/*\ Local\ variables\ */}}
\DoxyCodeLine{00764\ \ \ \ \ \textcolor{keyword}{static}\ real\ a;}
\DoxyCodeLine{00765\ \ \ \ \ \textcolor{keyword}{static}\ integer\ i\_\_;}
\DoxyCodeLine{00766\ \ \ \ \ \textcolor{keyword}{static}\ real\ b1,\ b2,\ c1,\ c2,\ d1,\ d2,\ one,\ zero,\ rbase;}
\DoxyCodeLine{00767\ \ \ \ \ \textcolor{keyword}{extern}\ doublereal\ slamc3\_(real\ *,\ real\ *);}
\DoxyCodeLine{00768\ }
\DoxyCodeLine{00769\ }
\DoxyCodeLine{00770\ \textcolor{comment}{/*\ \ -\/-\/\ LAPACK\ auxiliary\ routine\ (version\ 3.0)\ -\/-\/\ */}}
\DoxyCodeLine{00771\ \textcolor{comment}{/*\ \ \ \ \ Univ.\ of\ Tennessee,\ Univ.\ of\ California\ Berkeley,\ NAG\ Ltd.,\ */}}
\DoxyCodeLine{00772\ \textcolor{comment}{/*\ \ \ \ \ Courant\ Institute,\ Argonne\ National\ Lab,\ and\ Rice\ University\ */}}
\DoxyCodeLine{00773\ \textcolor{comment}{/*\ \ \ \ \ October\ 31,\ 1992\ */}}
\DoxyCodeLine{00774\ }
\DoxyCodeLine{00775\ \textcolor{comment}{/*\ \ \ \ \ ..\ Scalar\ Arguments\ ..\ */}}
\DoxyCodeLine{00776\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00777\ }
\DoxyCodeLine{00778\ \textcolor{comment}{/*\ \ Purpose\ */}}
\DoxyCodeLine{00779\ \textcolor{comment}{/*\ \ =======\ */}}
\DoxyCodeLine{00780\ }
\DoxyCodeLine{00781\ \textcolor{comment}{/*\ \ SLAMC4\ is\ a\ service\ routine\ for\ SLAMC2.\ */}}
\DoxyCodeLine{00782\ }
\DoxyCodeLine{00783\ \textcolor{comment}{/*\ \ Arguments\ */}}
\DoxyCodeLine{00784\ \textcolor{comment}{/*\ \ =========\ */}}
\DoxyCodeLine{00785\ }
\DoxyCodeLine{00786\ \textcolor{comment}{/*\ \ EMIN\ \ \ \ (output)\ EMIN\ */}}
\DoxyCodeLine{00787\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ minimum\ exponent\ before\ (gradual)\ underflow,\ computed\ by\ */}}
\DoxyCodeLine{00788\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ setting\ A\ =\ START\ and\ dividing\ by\ BASE\ until\ the\ previous\ A\ */}}
\DoxyCodeLine{00789\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ can\ not\ be\ recovered.\ */}}
\DoxyCodeLine{00790\ }
\DoxyCodeLine{00791\ \textcolor{comment}{/*\ \ START\ \ \ (input)\ REAL\ */}}
\DoxyCodeLine{00792\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ starting\ point\ for\ determining\ EMIN.\ */}}
\DoxyCodeLine{00793\ }
\DoxyCodeLine{00794\ \textcolor{comment}{/*\ \ BASE\ \ \ \ (input)\ INTEGER\ */}}
\DoxyCodeLine{00795\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ base\ of\ the\ machine.\ */}}
\DoxyCodeLine{00796\ }
\DoxyCodeLine{00797\ \textcolor{comment}{/*\ =====================================================================\ */}}
\DoxyCodeLine{00798\ }
\DoxyCodeLine{00799\ \textcolor{comment}{/*\ \ \ \ \ ..\ Local\ Scalars\ ..\ */}}
\DoxyCodeLine{00800\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00801\ \textcolor{comment}{/*\ \ \ \ \ ..\ External\ Functions\ ..\ */}}
\DoxyCodeLine{00802\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00803\ \textcolor{comment}{/*\ \ \ \ \ ..\ Executable\ Statements\ ..\ */}}
\DoxyCodeLine{00804\ }
\DoxyCodeLine{00805\ \ \ \ \ a\ =\ *start;}
\DoxyCodeLine{00806\ \ \ \ \ one\ =\ 1.f;}
\DoxyCodeLine{00807\ \ \ \ \ rbase\ =\ one\ /\ *base;}
\DoxyCodeLine{00808\ \ \ \ \ zero\ =\ 0.f;}
\DoxyCodeLine{00809\ \ \ \ \ *emin\ =\ 1;}
\DoxyCodeLine{00810\ \ \ \ \ r\_\_1\ =\ a\ *\ rbase;}
\DoxyCodeLine{00811\ \ \ \ \ b1\ =\ slamc3\_(\&r\_\_1,\ \&zero);}
\DoxyCodeLine{00812\ \ \ \ \ c1\ =\ a;}
\DoxyCodeLine{00813\ \ \ \ \ c2\ =\ a;}
\DoxyCodeLine{00814\ \ \ \ \ d1\ =\ a;}
\DoxyCodeLine{00815\ \ \ \ \ d2\ =\ a;}
\DoxyCodeLine{00816\ \textcolor{comment}{/*\ +\ \ \ \ WHILE(\ (\ C1.EQ.A\ ).AND.(\ C2.EQ.A\ ).AND.\ */}}
\DoxyCodeLine{00817\ \textcolor{comment}{/*\ \ \ \ \$\ \ \ \ \ \ \ (\ D1.EQ.A\ ).AND.(\ D2.EQ.A\ )\ \ \ \ \ \ )LOOP\ */}}
\DoxyCodeLine{00818\ \ \ L10:}
\DoxyCodeLine{00819\ \ \ \ \ \textcolor{keywordflow}{if}\ (c1\ ==\ a\ \&\&\ c2\ ==\ a\ \&\&\ d1\ ==\ a\ \&\&\ d2\ ==\ a)\ \{}
\DoxyCodeLine{00820\ \ \ \ \ \ \ \ \ -\/-\/(*emin);}
\DoxyCodeLine{00821\ \ \ \ \ \ \ \ \ a\ =\ b1;}
\DoxyCodeLine{00822\ \ \ \ \ \ \ \ \ r\_\_1\ =\ a\ /\ *base;}
\DoxyCodeLine{00823\ \ \ \ \ \ \ \ \ b1\ =\ slamc3\_(\&r\_\_1,\ \&zero);}
\DoxyCodeLine{00824\ \ \ \ \ \ \ \ \ r\_\_1\ =\ b1\ *\ *base;}
\DoxyCodeLine{00825\ \ \ \ \ \ \ \ \ c1\ =\ slamc3\_(\&r\_\_1,\ \&zero);}
\DoxyCodeLine{00826\ \ \ \ \ \ \ \ \ d1\ =\ zero;}
\DoxyCodeLine{00827\ \ \ \ \ \ \ \ \ i\_\_1\ =\ *base;}
\DoxyCodeLine{00828\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (i\_\_\ =\ 1;\ i\_\_\ <=\ i\_\_1;\ ++i\_\_)\ \{}
\DoxyCodeLine{00829\ \ \ \ \ \ \ \ \ \ \ \ \ d1\ +=\ b1;}
\DoxyCodeLine{00830\ \textcolor{comment}{/*\ L20:\ */}}
\DoxyCodeLine{00831\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00832\ \ \ \ \ \ \ \ \ r\_\_1\ =\ a\ *\ rbase;}
\DoxyCodeLine{00833\ \ \ \ \ \ \ \ \ b2\ =\ slamc3\_(\&r\_\_1,\ \&zero);}
\DoxyCodeLine{00834\ \ \ \ \ \ \ \ \ r\_\_1\ =\ b2\ /\ rbase;}
\DoxyCodeLine{00835\ \ \ \ \ \ \ \ \ c2\ =\ slamc3\_(\&r\_\_1,\ \&zero);}
\DoxyCodeLine{00836\ \ \ \ \ \ \ \ \ d2\ =\ zero;}
\DoxyCodeLine{00837\ \ \ \ \ \ \ \ \ i\_\_1\ =\ *base;}
\DoxyCodeLine{00838\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (i\_\_\ =\ 1;\ i\_\_\ <=\ i\_\_1;\ ++i\_\_)\ \{}
\DoxyCodeLine{00839\ \ \ \ \ \ \ \ \ \ \ \ \ d2\ +=\ b2;}
\DoxyCodeLine{00840\ \textcolor{comment}{/*\ L30:\ */}}
\DoxyCodeLine{00841\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00842\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ L10;}
\DoxyCodeLine{00843\ \ \ \ \ \}}
\DoxyCodeLine{00844\ \textcolor{comment}{/*\ +\ \ \ \ END\ WHILE\ */}}
\DoxyCodeLine{00845\ }
\DoxyCodeLine{00846\ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{00847\ }
\DoxyCodeLine{00848\ \textcolor{comment}{/*\ \ \ \ \ End\ of\ SLAMC4\ */}}
\DoxyCodeLine{00849\ }
\DoxyCodeLine{00850\ \}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ slamc4\_\ */}}
\DoxyCodeLine{00851\ }
\DoxyCodeLine{00852\ }
\DoxyCodeLine{00853\ \textcolor{comment}{/*\ ***********************************************************************\ */}}
\DoxyCodeLine{00854\ }
\DoxyCodeLine{00855\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}}
\DoxyCodeLine{00856\ slamc5\_(integer\ *\ beta,\ integer\ *\ p,\ integer\ *\ emin,}
\DoxyCodeLine{00857\ \ \ \ \ \ \ \ \ logical\ *\ ieee,\ integer\ *\ emax,\ real\ *\ rmax)}
\DoxyCodeLine{00858\ \{}
\DoxyCodeLine{00859\ \ \ \ \ \textcolor{comment}{/*\ System\ generated\ locals\ */}}
\DoxyCodeLine{00860\ \ \ \ \ integer\ i\_\_1;}
\DoxyCodeLine{00861\ \ \ \ \ real\ r\_\_1;}
\DoxyCodeLine{00862\ }
\DoxyCodeLine{00863\ \ \ \ \ \textcolor{comment}{/*\ Local\ variables\ */}}
\DoxyCodeLine{00864\ \ \ \ \ \textcolor{keyword}{static}\ integer\ i\_\_;}
\DoxyCodeLine{00865\ \ \ \ \ \textcolor{keyword}{static}\ real\ y,\ z\_\_;}
\DoxyCodeLine{00866\ \ \ \ \ \textcolor{keyword}{static}\ integer\ try\_\_,\ lexp;}
\DoxyCodeLine{00867\ \ \ \ \ \textcolor{keyword}{static}\ real\ oldy;}
\DoxyCodeLine{00868\ \ \ \ \ \textcolor{keyword}{static}\ integer\ uexp,\ nbits;}
\DoxyCodeLine{00869\ \ \ \ \ \textcolor{keyword}{extern}\ doublereal\ slamc3\_(real\ *,\ real\ *);}
\DoxyCodeLine{00870\ \ \ \ \ \textcolor{keyword}{static}\ real\ recbas;}
\DoxyCodeLine{00871\ \ \ \ \ \textcolor{keyword}{static}\ integer\ exbits,\ expsum;}
\DoxyCodeLine{00872\ }
\DoxyCodeLine{00873\ }
\DoxyCodeLine{00874\ \textcolor{comment}{/*\ \ -\/-\/\ LAPACK\ auxiliary\ routine\ (version\ 3.0)\ -\/-\/\ */}}
\DoxyCodeLine{00875\ \textcolor{comment}{/*\ \ \ \ \ Univ.\ of\ Tennessee,\ Univ.\ of\ California\ Berkeley,\ NAG\ Ltd.,\ */}}
\DoxyCodeLine{00876\ \textcolor{comment}{/*\ \ \ \ \ Courant\ Institute,\ Argonne\ National\ Lab,\ and\ Rice\ University\ */}}
\DoxyCodeLine{00877\ \textcolor{comment}{/*\ \ \ \ \ October\ 31,\ 1992\ */}}
\DoxyCodeLine{00878\ }
\DoxyCodeLine{00879\ \textcolor{comment}{/*\ \ \ \ \ ..\ Scalar\ Arguments\ ..\ */}}
\DoxyCodeLine{00880\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00881\ }
\DoxyCodeLine{00882\ \textcolor{comment}{/*\ \ Purpose\ */}}
\DoxyCodeLine{00883\ \textcolor{comment}{/*\ \ =======\ */}}
\DoxyCodeLine{00884\ }
\DoxyCodeLine{00885\ \textcolor{comment}{/*\ \ SLAMC5\ attempts\ to\ compute\ RMAX,\ the\ largest\ machine\ floating-\/point\ */}}
\DoxyCodeLine{00886\ \textcolor{comment}{/*\ \ number,\ without\ overflow.\ \ It\ assumes\ that\ EMAX\ +\ abs(EMIN)\ sum\ */}}
\DoxyCodeLine{00887\ \textcolor{comment}{/*\ \ approximately\ to\ a\ power\ of\ 2.\ \ It\ will\ fail\ on\ machines\ where\ this\ */}}
\DoxyCodeLine{00888\ \textcolor{comment}{/*\ \ assumption\ does\ not\ hold,\ for\ example,\ the\ Cyber\ 205\ (EMIN\ =\ -\/28625,\ */}}
\DoxyCodeLine{00889\ \textcolor{comment}{/*\ \ EMAX\ =\ 28718).\ \ It\ will\ also\ fail\ if\ the\ value\ supplied\ for\ EMIN\ is\ */}}
\DoxyCodeLine{00890\ \textcolor{comment}{/*\ \ too\ large\ (i.e.\ too\ close\ to\ zero),\ probably\ with\ overflow.\ */}}
\DoxyCodeLine{00891\ }
\DoxyCodeLine{00892\ \textcolor{comment}{/*\ \ Arguments\ */}}
\DoxyCodeLine{00893\ \textcolor{comment}{/*\ \ =========\ */}}
\DoxyCodeLine{00894\ }
\DoxyCodeLine{00895\ \textcolor{comment}{/*\ \ BETA\ \ \ \ (input)\ INTEGER\ */}}
\DoxyCodeLine{00896\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ base\ of\ floating-\/point\ arithmetic.\ */}}
\DoxyCodeLine{00897\ }
\DoxyCodeLine{00898\ \textcolor{comment}{/*\ \ P\ \ \ \ \ \ \ (input)\ INTEGER\ */}}
\DoxyCodeLine{00899\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ number\ of\ base\ BETA\ digits\ in\ the\ mantissa\ of\ a\ */}}
\DoxyCodeLine{00900\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ floating-\/point\ value.\ */}}
\DoxyCodeLine{00901\ }
\DoxyCodeLine{00902\ \textcolor{comment}{/*\ \ EMIN\ \ \ \ (input)\ INTEGER\ */}}
\DoxyCodeLine{00903\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ minimum\ exponent\ before\ (gradual)\ underflow.\ */}}
\DoxyCodeLine{00904\ }
\DoxyCodeLine{00905\ \textcolor{comment}{/*\ \ IEEE\ \ \ \ (input)\ LOGICAL\ */}}
\DoxyCodeLine{00906\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ A\ logical\ flag\ specifying\ whether\ or\ not\ the\ arithmetic\ */}}
\DoxyCodeLine{00907\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ system\ is\ thought\ to\ comply\ with\ the\ IEEE\ standard.\ */}}
\DoxyCodeLine{00908\ }
\DoxyCodeLine{00909\ \textcolor{comment}{/*\ \ EMAX\ \ \ \ (output)\ INTEGER\ */}}
\DoxyCodeLine{00910\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ largest\ exponent\ before\ overflow\ */}}
\DoxyCodeLine{00911\ }
\DoxyCodeLine{00912\ \textcolor{comment}{/*\ \ RMAX\ \ \ \ (output)\ REAL\ */}}
\DoxyCodeLine{00913\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ The\ largest\ machine\ floating-\/point\ number.\ */}}
\DoxyCodeLine{00914\ }
\DoxyCodeLine{00915\ \textcolor{comment}{/*\ =====================================================================\ */}}
\DoxyCodeLine{00916\ }
\DoxyCodeLine{00917\ \textcolor{comment}{/*\ \ \ \ \ ..\ Parameters\ ..\ */}}
\DoxyCodeLine{00918\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00919\ \textcolor{comment}{/*\ \ \ \ \ ..\ Local\ Scalars\ ..\ */}}
\DoxyCodeLine{00920\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00921\ \textcolor{comment}{/*\ \ \ \ \ ..\ External\ Functions\ ..\ */}}
\DoxyCodeLine{00922\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00923\ \textcolor{comment}{/*\ \ \ \ \ ..\ Intrinsic\ Functions\ ..\ */}}
\DoxyCodeLine{00924\ \textcolor{comment}{/*\ \ \ \ \ ..\ */}}
\DoxyCodeLine{00925\ \textcolor{comment}{/*\ \ \ \ \ ..\ Executable\ Statements\ ..\ */}}
\DoxyCodeLine{00926\ }
\DoxyCodeLine{00927\ \textcolor{comment}{/*\ \ \ \ \ First\ compute\ LEXP\ and\ UEXP,\ two\ powers\ of\ 2\ that\ bound\ */}}
\DoxyCodeLine{00928\ \textcolor{comment}{/*\ \ \ \ \ abs(EMIN).\ We\ then\ assume\ that\ EMAX\ +\ abs(EMIN)\ will\ sum\ */}}
\DoxyCodeLine{00929\ \textcolor{comment}{/*\ \ \ \ \ approximately\ to\ the\ bound\ that\ is\ closest\ to\ abs(EMIN).\ */}}
\DoxyCodeLine{00930\ \textcolor{comment}{/*\ \ \ \ \ (EMAX\ is\ the\ exponent\ of\ the\ required\ number\ RMAX).\ */}}
\DoxyCodeLine{00931\ }
\DoxyCodeLine{00932\ \ \ \ \ lexp\ =\ 1;}
\DoxyCodeLine{00933\ \ \ \ \ exbits\ =\ 1;}
\DoxyCodeLine{00934\ \ \ L10:}
\DoxyCodeLine{00935\ \ \ \ \ try\_\_\ =\ lexp\ <<\ 1;}
\DoxyCodeLine{00936\ \ \ \ \ \textcolor{keywordflow}{if}\ (try\_\_\ <=\ -\/(*emin))\ \{}
\DoxyCodeLine{00937\ \ \ \ \ \ \ \ \ lexp\ =\ try\_\_;}
\DoxyCodeLine{00938\ \ \ \ \ \ \ \ \ ++exbits;}
\DoxyCodeLine{00939\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ L10;}
\DoxyCodeLine{00940\ \ \ \ \ \}}
\DoxyCodeLine{00941\ \ \ \ \ \textcolor{keywordflow}{if}\ (lexp\ ==\ -\/(*emin))\ \{}
\DoxyCodeLine{00942\ \ \ \ \ \ \ \ \ uexp\ =\ lexp;}
\DoxyCodeLine{00943\ \ \ \ \ \}}
\DoxyCodeLine{00944\ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00945\ \ \ \ \ \ \ \ \ uexp\ =\ try\_\_;}
\DoxyCodeLine{00946\ \ \ \ \ \ \ \ \ ++exbits;}
\DoxyCodeLine{00947\ \ \ \ \ \}}
\DoxyCodeLine{00948\ }
\DoxyCodeLine{00949\ \textcolor{comment}{/*\ \ \ \ \ Now\ -\/LEXP\ is\ less\ than\ or\ equal\ to\ EMIN,\ and\ -\/UEXP\ is\ greater\ */}}
\DoxyCodeLine{00950\ \textcolor{comment}{/*\ \ \ \ \ than\ or\ equal\ to\ EMIN.\ EXBITS\ is\ the\ number\ of\ bits\ needed\ to\ */}}
\DoxyCodeLine{00951\ \textcolor{comment}{/*\ \ \ \ \ store\ the\ exponent.\ */}}
\DoxyCodeLine{00952\ }
\DoxyCodeLine{00953\ \ \ \ \ \textcolor{keywordflow}{if}\ (uexp\ +\ *emin\ >\ -\/lexp\ -\/\ *emin)\ \{}
\DoxyCodeLine{00954\ \ \ \ \ \ \ \ \ expsum\ =\ lexp\ <<\ 1;}
\DoxyCodeLine{00955\ \ \ \ \ \}}
\DoxyCodeLine{00956\ \ \ \ \ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00957\ \ \ \ \ \ \ \ \ expsum\ =\ uexp\ <<\ 1;}
\DoxyCodeLine{00958\ \ \ \ \ \}}
\DoxyCodeLine{00959\ }
\DoxyCodeLine{00960\ \textcolor{comment}{/*\ \ \ \ \ EXPSUM\ is\ the\ exponent\ range,\ approximately\ equal\ to\ */}}
\DoxyCodeLine{00961\ \textcolor{comment}{/*\ \ \ \ \ EMAX\ -\/\ EMIN\ +\ 1\ .\ */}}
\DoxyCodeLine{00962\ }
\DoxyCodeLine{00963\ \ \ \ \ *emax\ =\ expsum\ +\ *emin\ -\/\ 1;}
\DoxyCodeLine{00964\ \ \ \ \ nbits\ =\ exbits\ +\ 1\ +\ *p;}
\DoxyCodeLine{00965\ }
\DoxyCodeLine{00966\ \textcolor{comment}{/*\ \ \ \ \ NBITS\ is\ the\ total\ number\ of\ bits\ needed\ to\ store\ a\ */}}
\DoxyCodeLine{00967\ \textcolor{comment}{/*\ \ \ \ \ floating-\/point\ number.\ */}}
\DoxyCodeLine{00968\ }
\DoxyCodeLine{00969\ \ \ \ \ \textcolor{keywordflow}{if}\ (nbits\ \%\ 2\ ==\ 1\ \&\&\ *beta\ ==\ 2)\ \{}
\DoxyCodeLine{00970\ }
\DoxyCodeLine{00971\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Either\ there\ are\ an\ odd\ number\ of\ bits\ used\ to\ store\ a\ */}}
\DoxyCodeLine{00972\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ floating-\/point\ number,\ which\ is\ unlikely,\ or\ some\ bits\ are\ */}}
\DoxyCodeLine{00973\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ not\ used\ in\ the\ representation\ of\ numbers,\ which\ is\ possible,\ */}}
\DoxyCodeLine{00974\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ (e.g.\ Cray\ machines)\ or\ the\ mantissa\ has\ an\ implicit\ bit,\ */}}
\DoxyCodeLine{00975\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ (e.g.\ IEEE\ machines,\ Dec\ Vax\ machines),\ which\ is\ perhaps\ the\ */}}
\DoxyCodeLine{00976\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ most\ likely.\ We\ have\ to\ assume\ the\ last\ alternative.\ */}}
\DoxyCodeLine{00977\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ If\ this\ is\ true,\ then\ we\ need\ to\ reduce\ EMAX\ by\ one\ because\ */}}
\DoxyCodeLine{00978\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ there\ must\ be\ some\ way\ of\ representing\ zero\ in\ an\ implicit-\/bit\ */}}
\DoxyCodeLine{00979\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ system.\ On\ machines\ like\ Cray,\ we\ are\ reducing\ EMAX\ by\ one\ */}}
\DoxyCodeLine{00980\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ unnecessarily.\ */}}
\DoxyCodeLine{00981\ }
\DoxyCodeLine{00982\ \ \ \ \ \ \ \ \ -\/-\/(*emax);}
\DoxyCodeLine{00983\ \ \ \ \ \}}
\DoxyCodeLine{00984\ }
\DoxyCodeLine{00985\ \ \ \ \ \textcolor{keywordflow}{if}\ (*ieee)\ \{}
\DoxyCodeLine{00986\ }
\DoxyCodeLine{00987\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Assume\ we\ are\ on\ an\ IEEE\ machine\ which\ reserves\ one\ exponent\ */}}
\DoxyCodeLine{00988\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ for\ infinity\ and\ NaN.\ */}}
\DoxyCodeLine{00989\ }
\DoxyCodeLine{00990\ \ \ \ \ \ \ \ \ -\/-\/(*emax);}
\DoxyCodeLine{00991\ \ \ \ \ \}}
\DoxyCodeLine{00992\ }
\DoxyCodeLine{00993\ \textcolor{comment}{/*\ \ \ \ \ Now\ create\ RMAX,\ the\ largest\ machine\ number,\ which\ should\ */}}
\DoxyCodeLine{00994\ \textcolor{comment}{/*\ \ \ \ \ be\ equal\ to\ (1.0\ -\/\ BETA**(-\/P))\ *\ BETA**EMAX\ .\ */}}
\DoxyCodeLine{00995\ }
\DoxyCodeLine{00996\ \textcolor{comment}{/*\ \ \ \ \ First\ compute\ 1.0\ -\/\ BETA**(-\/P),\ being\ careful\ that\ the\ */}}
\DoxyCodeLine{00997\ \textcolor{comment}{/*\ \ \ \ \ result\ is\ less\ than\ 1.0\ .\ */}}
\DoxyCodeLine{00998\ }
\DoxyCodeLine{00999\ \ \ \ \ recbas\ =\ 1.f\ /\ *beta;}
\DoxyCodeLine{01000\ \ \ \ \ z\_\_\ =\ *beta\ -\/\ 1.f;}
\DoxyCodeLine{01001\ \ \ \ \ y\ =\ 0.f;}
\DoxyCodeLine{01002\ \ \ \ \ i\_\_1\ =\ *p;}
\DoxyCodeLine{01003\ \ \ \ \ \textcolor{keywordflow}{for}\ (i\_\_\ =\ 1;\ i\_\_\ <=\ i\_\_1;\ ++i\_\_)\ \{}
\DoxyCodeLine{01004\ \ \ \ \ \ \ \ \ z\_\_\ *=\ recbas;}
\DoxyCodeLine{01005\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (y\ <\ 1.f)\ \{}
\DoxyCodeLine{01006\ \ \ \ \ \ \ \ \ \ \ \ \ oldy\ =\ y;}
\DoxyCodeLine{01007\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01008\ \ \ \ \ \ \ \ \ y\ =\ slamc3\_(\&y,\ \&z\_\_);}
\DoxyCodeLine{01009\ \textcolor{comment}{/*\ L20:\ */}}
\DoxyCodeLine{01010\ \ \ \ \ \}}
\DoxyCodeLine{01011\ \ \ \ \ \textcolor{keywordflow}{if}\ (y\ >=\ 1.f)\ \{}
\DoxyCodeLine{01012\ \ \ \ \ \ \ \ \ y\ =\ oldy;}
\DoxyCodeLine{01013\ \ \ \ \ \}}
\DoxyCodeLine{01014\ }
\DoxyCodeLine{01015\ \textcolor{comment}{/*\ \ \ \ \ Now\ multiply\ by\ BETA**EMAX\ to\ get\ RMAX.\ */}}
\DoxyCodeLine{01016\ }
\DoxyCodeLine{01017\ \ \ \ \ i\_\_1\ =\ *emax;}
\DoxyCodeLine{01018\ \ \ \ \ \textcolor{keywordflow}{for}\ (i\_\_\ =\ 1;\ i\_\_\ <=\ i\_\_1;\ ++i\_\_)\ \{}
\DoxyCodeLine{01019\ \ \ \ \ \ \ \ \ r\_\_1\ =\ y\ *\ *beta;}
\DoxyCodeLine{01020\ \ \ \ \ \ \ \ \ y\ =\ slamc3\_(\&r\_\_1,\ \&c\_b32);}
\DoxyCodeLine{01021\ \textcolor{comment}{/*\ L30:\ */}}
\DoxyCodeLine{01022\ \ \ \ \ \}}
\DoxyCodeLine{01023\ }
\DoxyCodeLine{01024\ \ \ \ \ *rmax\ =\ y;}
\DoxyCodeLine{01025\ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{01026\ }
\DoxyCodeLine{01027\ \textcolor{comment}{/*\ \ \ \ \ End\ of\ SLAMC5\ */}}
\DoxyCodeLine{01028\ }
\DoxyCodeLine{01029\ \}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ slamc5\_\ */}}

\end{DoxyCode}
