\doxysection{slapack\+\_\+lite.\+c}
\label{slapack__lite_8c_source}\index{src/libsphinxbase/util/slapack\_lite.c@{src/libsphinxbase/util/slapack\_lite.c}}

\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{comment}{/*}}
\DoxyCodeLine{00002\ \textcolor{comment}{NOTE:\ This\ is\ generated\ code.\ Look\ in\ README.python\ for\ information\ on}}
\DoxyCodeLine{00003\ \textcolor{comment}{\ \ \ \ \ \ remaking\ this\ file.}}
\DoxyCodeLine{00004\ \textcolor{comment}{*/}}
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}sphinxbase/f2c.h"{}}}
\DoxyCodeLine{00006\ }
\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#ifdef\ HAVE\_CONFIG}}
\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ "{}config.h"{}}}
\DoxyCodeLine{00009\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{00010\ \textcolor{keyword}{extern}\ doublereal\ slamch\_(\textcolor{keywordtype}{char}\ *);}
\DoxyCodeLine{00011\ \textcolor{preprocessor}{\#define\ EPSILON\ slamch\_("{}Epsilon"{})}}
\DoxyCodeLine{00012\ \textcolor{preprocessor}{\#define\ SAFEMINIMUM\ slamch\_("{}Safe\ minimum"{})}}
\DoxyCodeLine{00013\ \textcolor{preprocessor}{\#define\ PRECISION\ slamch\_("{}Precision"{})}}
\DoxyCodeLine{00014\ \textcolor{preprocessor}{\#define\ BASE\ slamch\_("{}Base"{})}}
\DoxyCodeLine{00015\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{00016\ }
\DoxyCodeLine{00017\ }
\DoxyCodeLine{00018\ \textcolor{keyword}{extern}\ doublereal\ slapy2\_(real\ *,\ real\ *);}
\DoxyCodeLine{00019\ }
\DoxyCodeLine{00020\ }
\DoxyCodeLine{00021\ }
\DoxyCodeLine{00022\ \textcolor{comment}{/*\ Table\ of\ constant\ values\ */}}
\DoxyCodeLine{00023\ }
\DoxyCodeLine{00024\ \textcolor{keyword}{static}\ integer\ c\_\_0\ =\ 0;}
\DoxyCodeLine{00025\ \textcolor{keyword}{static}\ real\ c\_b163\ =\ 0.f;}
\DoxyCodeLine{00026\ \textcolor{keyword}{static}\ real\ c\_b164\ =\ 1.f;}
\DoxyCodeLine{00027\ \textcolor{keyword}{static}\ integer\ c\_\_1\ =\ 1;}
\DoxyCodeLine{00028\ \textcolor{keyword}{static}\ real\ c\_b181\ =\ -\/1.f;}
\DoxyCodeLine{00029\ \textcolor{keyword}{static}\ integer\ c\_n1\ =\ -\/1;}
\DoxyCodeLine{00030\ }
\DoxyCodeLine{00031\ integer\ ieeeck\_(integer\ *ispec,\ real\ *zero,\ real\ *one)}
\DoxyCodeLine{00032\ \{}
\DoxyCodeLine{00033\ \ \ \ \ \textcolor{comment}{/*\ System\ generated\ locals\ */}}
\DoxyCodeLine{00034\ \ \ \ \ integer\ ret\_val;}
\DoxyCodeLine{00035\ }
\DoxyCodeLine{00036\ \ \ \ \ \textcolor{comment}{/*\ Local\ variables\ */}}
\DoxyCodeLine{00037\ \ \ \ \ \textcolor{keyword}{static}\ real\ nan1,\ nan2,\ nan3,\ nan4,\ nan5,\ nan6,\ neginf,\ posinf,\ negzro,}
\DoxyCodeLine{00038\ \ \ \ \ \ \ \ \ \ \ \ \ newzro;}
\DoxyCodeLine{00039\ }
\DoxyCodeLine{00040\ }
\DoxyCodeLine{00041\ \textcolor{comment}{/*}}
\DoxyCodeLine{00042\ \textcolor{comment}{\ \ \ \ -\/-\/\ LAPACK\ auxiliary\ routine\ (version\ 3.0)\ -\/-\/}}
\DoxyCodeLine{00043\ \textcolor{comment}{\ \ \ \ \ \ \ Univ.\ of\ Tennessee,\ Univ.\ of\ California\ Berkeley,\ NAG\ Ltd.,}}
\DoxyCodeLine{00044\ \textcolor{comment}{\ \ \ \ \ \ \ Courant\ Institute,\ Argonne\ National\ Lab,\ and\ Rice\ University}}
\DoxyCodeLine{00045\ \textcolor{comment}{\ \ \ \ \ \ \ June\ 30,\ 1998}}
\DoxyCodeLine{00046\ \textcolor{comment}{}}
\DoxyCodeLine{00047\ \textcolor{comment}{}}
\DoxyCodeLine{00048\ \textcolor{comment}{\ \ \ \ Purpose}}
\DoxyCodeLine{00049\ \textcolor{comment}{\ \ \ \ =======}}
\DoxyCodeLine{00050\ \textcolor{comment}{}}
\DoxyCodeLine{00051\ \textcolor{comment}{\ \ \ \ IEEECK\ is\ called\ from\ the\ ILAENV\ to\ verify\ that\ Infinity\ and}}
\DoxyCodeLine{00052\ \textcolor{comment}{\ \ \ \ possibly\ NaN\ arithmetic\ is\ safe\ (i.e.\ will\ not\ trap).}}
\DoxyCodeLine{00053\ \textcolor{comment}{}}
\DoxyCodeLine{00054\ \textcolor{comment}{\ \ \ \ Arguments}}
\DoxyCodeLine{00055\ \textcolor{comment}{\ \ \ \ =========}}
\DoxyCodeLine{00056\ \textcolor{comment}{}}
\DoxyCodeLine{00057\ \textcolor{comment}{\ \ \ \ ISPEC\ \ \ (input)\ INTEGER}}
\DoxyCodeLine{00058\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ Specifies\ whether\ to\ test\ just\ for\ inifinity\ arithmetic}}
\DoxyCodeLine{00059\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ or\ whether\ to\ test\ for\ infinity\ and\ NaN\ arithmetic.}}
\DoxyCodeLine{00060\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 0:\ Verify\ infinity\ arithmetic\ only.}}
\DoxyCodeLine{00061\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 1:\ Verify\ infinity\ and\ NaN\ arithmetic.}}
\DoxyCodeLine{00062\ \textcolor{comment}{}}
\DoxyCodeLine{00063\ \textcolor{comment}{\ \ \ \ ZERO\ \ \ \ (input)\ REAL}}
\DoxyCodeLine{00064\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ Must\ contain\ the\ value\ 0.0}}
\DoxyCodeLine{00065\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ This\ is\ passed\ to\ prevent\ the\ compiler\ from\ optimizing}}
\DoxyCodeLine{00066\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ away\ this\ code.}}
\DoxyCodeLine{00067\ \textcolor{comment}{}}
\DoxyCodeLine{00068\ \textcolor{comment}{\ \ \ \ ONE\ \ \ \ \ (input)\ REAL}}
\DoxyCodeLine{00069\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ Must\ contain\ the\ value\ 1.0}}
\DoxyCodeLine{00070\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ This\ is\ passed\ to\ prevent\ the\ compiler\ from\ optimizing}}
\DoxyCodeLine{00071\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ away\ this\ code.}}
\DoxyCodeLine{00072\ \textcolor{comment}{}}
\DoxyCodeLine{00073\ \textcolor{comment}{\ \ \ \ RETURN\ VALUE:\ \ INTEGER}}
\DoxyCodeLine{00074\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 0:\ \ Arithmetic\ failed\ to\ produce\ the\ correct\ answers}}
\DoxyCodeLine{00075\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 1:\ \ Arithmetic\ produced\ the\ correct\ answers}}
\DoxyCodeLine{00076\ \textcolor{comment}{*/}}
\DoxyCodeLine{00077\ }
\DoxyCodeLine{00078\ \ \ \ \ ret\_val\ =\ 1;}
\DoxyCodeLine{00079\ }
\DoxyCodeLine{00080\ \ \ \ \ posinf\ =\ *one\ /\ *zero;}
\DoxyCodeLine{00081\ \ \ \ \ \textcolor{keywordflow}{if}\ (posinf\ <=\ *one)\ \{}
\DoxyCodeLine{00082\ \ \ \ \ \ \ \ \ ret\_val\ =\ 0;}
\DoxyCodeLine{00083\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00084\ \ \ \ \ \}}
\DoxyCodeLine{00085\ }
\DoxyCodeLine{00086\ \ \ \ \ neginf\ =\ -\/(*one)\ /\ *zero;}
\DoxyCodeLine{00087\ \ \ \ \ \textcolor{keywordflow}{if}\ (neginf\ >=\ *zero)\ \{}
\DoxyCodeLine{00088\ \ \ \ \ \ \ \ \ ret\_val\ =\ 0;}
\DoxyCodeLine{00089\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00090\ \ \ \ \ \}}
\DoxyCodeLine{00091\ }
\DoxyCodeLine{00092\ \ \ \ \ negzro\ =\ *one\ /\ (neginf\ +\ *one);}
\DoxyCodeLine{00093\ \ \ \ \ \textcolor{keywordflow}{if}\ (negzro\ !=\ *zero)\ \{}
\DoxyCodeLine{00094\ \ \ \ \ \ \ \ \ ret\_val\ =\ 0;}
\DoxyCodeLine{00095\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00096\ \ \ \ \ \}}
\DoxyCodeLine{00097\ }
\DoxyCodeLine{00098\ \ \ \ \ neginf\ =\ *one\ /\ negzro;}
\DoxyCodeLine{00099\ \ \ \ \ \textcolor{keywordflow}{if}\ (neginf\ >=\ *zero)\ \{}
\DoxyCodeLine{00100\ \ \ \ \ \ \ \ \ ret\_val\ =\ 0;}
\DoxyCodeLine{00101\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00102\ \ \ \ \ \}}
\DoxyCodeLine{00103\ }
\DoxyCodeLine{00104\ \ \ \ \ newzro\ =\ negzro\ +\ *zero;}
\DoxyCodeLine{00105\ \ \ \ \ \textcolor{keywordflow}{if}\ (newzro\ !=\ *zero)\ \{}
\DoxyCodeLine{00106\ \ \ \ \ \ \ \ \ ret\_val\ =\ 0;}
\DoxyCodeLine{00107\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00108\ \ \ \ \ \}}
\DoxyCodeLine{00109\ }
\DoxyCodeLine{00110\ \ \ \ \ posinf\ =\ *one\ /\ newzro;}
\DoxyCodeLine{00111\ \ \ \ \ \textcolor{keywordflow}{if}\ (posinf\ <=\ *one)\ \{}
\DoxyCodeLine{00112\ \ \ \ \ \ \ \ \ ret\_val\ =\ 0;}
\DoxyCodeLine{00113\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00114\ \ \ \ \ \}}
\DoxyCodeLine{00115\ }
\DoxyCodeLine{00116\ \ \ \ \ neginf\ *=\ posinf;}
\DoxyCodeLine{00117\ \ \ \ \ \textcolor{keywordflow}{if}\ (neginf\ >=\ *zero)\ \{}
\DoxyCodeLine{00118\ \ \ \ \ \ \ \ \ ret\_val\ =\ 0;}
\DoxyCodeLine{00119\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00120\ \ \ \ \ \}}
\DoxyCodeLine{00121\ }
\DoxyCodeLine{00122\ \ \ \ \ posinf\ *=\ posinf;}
\DoxyCodeLine{00123\ \ \ \ \ \textcolor{keywordflow}{if}\ (posinf\ <=\ *one)\ \{}
\DoxyCodeLine{00124\ \ \ \ \ \ \ \ \ ret\_val\ =\ 0;}
\DoxyCodeLine{00125\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00126\ \ \ \ \ \}}
\DoxyCodeLine{00127\ }
\DoxyCodeLine{00128\ }
\DoxyCodeLine{00129\ \textcolor{comment}{/*\ \ \ \ \ Return\ if\ we\ were\ only\ asked\ to\ check\ infinity\ arithmetic\ */}}
\DoxyCodeLine{00130\ }
\DoxyCodeLine{00131\ \ \ \ \ \textcolor{keywordflow}{if}\ (*ispec\ ==\ 0)\ \{}
\DoxyCodeLine{00132\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00133\ \ \ \ \ \}}
\DoxyCodeLine{00134\ }
\DoxyCodeLine{00135\ \ \ \ \ nan1\ =\ posinf\ +\ neginf;}
\DoxyCodeLine{00136\ }
\DoxyCodeLine{00137\ \ \ \ \ nan2\ =\ posinf\ /\ neginf;}
\DoxyCodeLine{00138\ }
\DoxyCodeLine{00139\ \ \ \ \ nan3\ =\ posinf\ /\ posinf;}
\DoxyCodeLine{00140\ }
\DoxyCodeLine{00141\ \ \ \ \ nan4\ =\ posinf\ *\ *zero;}
\DoxyCodeLine{00142\ }
\DoxyCodeLine{00143\ \ \ \ \ nan5\ =\ neginf\ *\ negzro;}
\DoxyCodeLine{00144\ }
\DoxyCodeLine{00145\ \ \ \ \ nan6\ =\ nan5\ *\ 0.f;}
\DoxyCodeLine{00146\ }
\DoxyCodeLine{00147\ \ \ \ \ \textcolor{keywordflow}{if}\ (nan1\ ==\ nan1)\ \{}
\DoxyCodeLine{00148\ \ \ \ \ \ \ \ \ ret\_val\ =\ 0;}
\DoxyCodeLine{00149\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00150\ \ \ \ \ \}}
\DoxyCodeLine{00151\ }
\DoxyCodeLine{00152\ \ \ \ \ \textcolor{keywordflow}{if}\ (nan2\ ==\ nan2)\ \{}
\DoxyCodeLine{00153\ \ \ \ \ \ \ \ \ ret\_val\ =\ 0;}
\DoxyCodeLine{00154\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00155\ \ \ \ \ \}}
\DoxyCodeLine{00156\ }
\DoxyCodeLine{00157\ \ \ \ \ \textcolor{keywordflow}{if}\ (nan3\ ==\ nan3)\ \{}
\DoxyCodeLine{00158\ \ \ \ \ \ \ \ \ ret\_val\ =\ 0;}
\DoxyCodeLine{00159\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00160\ \ \ \ \ \}}
\DoxyCodeLine{00161\ }
\DoxyCodeLine{00162\ \ \ \ \ \textcolor{keywordflow}{if}\ (nan4\ ==\ nan4)\ \{}
\DoxyCodeLine{00163\ \ \ \ \ \ \ \ \ ret\_val\ =\ 0;}
\DoxyCodeLine{00164\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00165\ \ \ \ \ \}}
\DoxyCodeLine{00166\ }
\DoxyCodeLine{00167\ \ \ \ \ \textcolor{keywordflow}{if}\ (nan5\ ==\ nan5)\ \{}
\DoxyCodeLine{00168\ \ \ \ \ \ \ \ \ ret\_val\ =\ 0;}
\DoxyCodeLine{00169\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00170\ \ \ \ \ \}}
\DoxyCodeLine{00171\ }
\DoxyCodeLine{00172\ \ \ \ \ \textcolor{keywordflow}{if}\ (nan6\ ==\ nan6)\ \{}
\DoxyCodeLine{00173\ \ \ \ \ \ \ \ \ ret\_val\ =\ 0;}
\DoxyCodeLine{00174\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00175\ \ \ \ \ \}}
\DoxyCodeLine{00176\ }
\DoxyCodeLine{00177\ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00178\ \}\ \textcolor{comment}{/*\ ieeeck\_\ */}}
\DoxyCodeLine{00179\ }
\DoxyCodeLine{00180\ integer\ ilaenv\_(integer\ *ispec,\ \textcolor{keywordtype}{char}\ *name\_\_,\ \textcolor{keywordtype}{char}\ *opts,\ integer\ *n1,}
\DoxyCodeLine{00181\ \ \ \ \ \ \ \ \ integer\ *n2,\ integer\ *n3,\ integer\ *n4,\ ftnlen\ name\_len,\ ftnlen}
\DoxyCodeLine{00182\ \ \ \ \ \ \ \ \ opts\_len)}
\DoxyCodeLine{00183\ \{}
\DoxyCodeLine{00184\ \ \ \ \ \textcolor{comment}{/*\ System\ generated\ locals\ */}}
\DoxyCodeLine{00185\ \ \ \ \ integer\ ret\_val;}
\DoxyCodeLine{00186\ }
\DoxyCodeLine{00187\ \ \ \ \ \textcolor{comment}{/*\ Builtin\ functions\ */}}
\DoxyCodeLine{00188\ \ \ \ \ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}\ s\_copy(\textcolor{keywordtype}{char}\ *,\ \textcolor{keywordtype}{char}\ *,\ ftnlen,\ ftnlen);}
\DoxyCodeLine{00189\ \ \ \ \ integer\ s\_cmp(\textcolor{keywordtype}{char}\ *,\ \textcolor{keywordtype}{char}\ *,\ ftnlen,\ ftnlen);}
\DoxyCodeLine{00190\ }
\DoxyCodeLine{00191\ \ \ \ \ \textcolor{comment}{/*\ Local\ variables\ */}}
\DoxyCodeLine{00192\ \ \ \ \ \textcolor{keyword}{static}\ integer\ i\_\_;}
\DoxyCodeLine{00193\ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{char}\ c1[1],\ c2[2],\ c3[3],\ c4[2];}
\DoxyCodeLine{00194\ \ \ \ \ \textcolor{keyword}{static}\ integer\ ic,\ nb,\ iz,\ nx;}
\DoxyCodeLine{00195\ \ \ \ \ \textcolor{keyword}{static}\ logical\ cname,\ sname;}
\DoxyCodeLine{00196\ \ \ \ \ \textcolor{keyword}{static}\ integer\ nbmin;}
\DoxyCodeLine{00197\ \ \ \ \ \textcolor{keyword}{extern}\ integer\ ieeeck\_(integer\ *,\ real\ *,\ real\ *);}
\DoxyCodeLine{00198\ \ \ \ \ \textcolor{keyword}{static}\ \textcolor{keywordtype}{char}\ subnam[6];}
\DoxyCodeLine{00199\ }
\DoxyCodeLine{00200\ }
\DoxyCodeLine{00201\ \textcolor{comment}{/*}}
\DoxyCodeLine{00202\ \textcolor{comment}{\ \ \ \ -\/-\/\ LAPACK\ auxiliary\ routine\ (version\ 3.0)\ -\/-\/}}
\DoxyCodeLine{00203\ \textcolor{comment}{\ \ \ \ \ \ \ Univ.\ of\ Tennessee,\ Univ.\ of\ California\ Berkeley,\ NAG\ Ltd.,}}
\DoxyCodeLine{00204\ \textcolor{comment}{\ \ \ \ \ \ \ Courant\ Institute,\ Argonne\ National\ Lab,\ and\ Rice\ University}}
\DoxyCodeLine{00205\ \textcolor{comment}{\ \ \ \ \ \ \ June\ 30,\ 1999}}
\DoxyCodeLine{00206\ \textcolor{comment}{}}
\DoxyCodeLine{00207\ \textcolor{comment}{}}
\DoxyCodeLine{00208\ \textcolor{comment}{\ \ \ \ Purpose}}
\DoxyCodeLine{00209\ \textcolor{comment}{\ \ \ \ =======}}
\DoxyCodeLine{00210\ \textcolor{comment}{}}
\DoxyCodeLine{00211\ \textcolor{comment}{\ \ \ \ ILAENV\ is\ called\ from\ the\ LAPACK\ routines\ to\ choose\ problem-\/dependent}}
\DoxyCodeLine{00212\ \textcolor{comment}{\ \ \ \ parameters\ for\ the\ local\ environment.\ \ See\ ISPEC\ for\ a\ description\ of}}
\DoxyCodeLine{00213\ \textcolor{comment}{\ \ \ \ the\ parameters.}}
\DoxyCodeLine{00214\ \textcolor{comment}{}}
\DoxyCodeLine{00215\ \textcolor{comment}{\ \ \ \ This\ version\ provides\ a\ set\ of\ parameters\ which\ should\ give\ good,}}
\DoxyCodeLine{00216\ \textcolor{comment}{\ \ \ \ but\ not\ optimal,\ performance\ on\ many\ of\ the\ currently\ available}}
\DoxyCodeLine{00217\ \textcolor{comment}{\ \ \ \ computers.\ \ Users\ are\ encouraged\ to\ modify\ this\ subroutine\ to\ set}}
\DoxyCodeLine{00218\ \textcolor{comment}{\ \ \ \ the\ tuning\ parameters\ for\ their\ particular\ machine\ using\ the\ option}}
\DoxyCodeLine{00219\ \textcolor{comment}{\ \ \ \ and\ problem\ size\ information\ in\ the\ arguments.}}
\DoxyCodeLine{00220\ \textcolor{comment}{}}
\DoxyCodeLine{00221\ \textcolor{comment}{\ \ \ \ This\ routine\ will\ not\ function\ correctly\ if\ it\ is\ converted\ to\ all}}
\DoxyCodeLine{00222\ \textcolor{comment}{\ \ \ \ lower\ case.\ \ Converting\ it\ to\ all\ upper\ case\ is\ allowed.}}
\DoxyCodeLine{00223\ \textcolor{comment}{}}
\DoxyCodeLine{00224\ \textcolor{comment}{\ \ \ \ Arguments}}
\DoxyCodeLine{00225\ \textcolor{comment}{\ \ \ \ =========}}
\DoxyCodeLine{00226\ \textcolor{comment}{}}
\DoxyCodeLine{00227\ \textcolor{comment}{\ \ \ \ ISPEC\ \ \ (input)\ INTEGER}}
\DoxyCodeLine{00228\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ Specifies\ the\ parameter\ to\ be\ returned\ as\ the\ value\ of}}
\DoxyCodeLine{00229\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ ILAENV.}}
\DoxyCodeLine{00230\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 1:\ the\ optimal\ blocksize;\ if\ this\ value\ is\ 1,\ an\ unblocked}}
\DoxyCodeLine{00231\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ algorithm\ will\ give\ the\ best\ performance.}}
\DoxyCodeLine{00232\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 2:\ the\ minimum\ block\ size\ for\ which\ the\ block\ routine}}
\DoxyCodeLine{00233\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ should\ be\ used;\ if\ the\ usable\ block\ size\ is\ less\ than}}
\DoxyCodeLine{00234\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ this\ value,\ an\ unblocked\ routine\ should\ be\ used.}}
\DoxyCodeLine{00235\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 3:\ the\ crossover\ point\ (in\ a\ block\ routine,\ for\ N\ less}}
\DoxyCodeLine{00236\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ than\ this\ value,\ an\ unblocked\ routine\ should\ be\ used)}}
\DoxyCodeLine{00237\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 4:\ the\ number\ of\ shifts,\ used\ in\ the\ nonsymmetric}}
\DoxyCodeLine{00238\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ eigenvalue\ routines}}
\DoxyCodeLine{00239\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 5:\ the\ minimum\ column\ dimension\ for\ blocking\ to\ be\ used;}}
\DoxyCodeLine{00240\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ rectangular\ blocks\ must\ have\ dimension\ at\ least\ k\ by\ m,}}
\DoxyCodeLine{00241\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ where\ k\ is\ given\ by\ ILAENV(2,...)\ and\ m\ by\ ILAENV(5,...)}}
\DoxyCodeLine{00242\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 6:\ the\ crossover\ point\ for\ the\ SVD\ (when\ reducing\ an\ m\ by\ n}}
\DoxyCodeLine{00243\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ matrix\ to\ bidiagonal\ form,\ if\ max(m,n)/min(m,n)\ exceeds}}
\DoxyCodeLine{00244\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ this\ value,\ a\ QR\ factorization\ is\ used\ first\ to\ reduce}}
\DoxyCodeLine{00245\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ the\ matrix\ to\ a\ triangular\ form.)}}
\DoxyCodeLine{00246\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 7:\ the\ number\ of\ processors}}
\DoxyCodeLine{00247\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 8:\ the\ crossover\ point\ for\ the\ multishift\ QR\ and\ QZ\ methods}}
\DoxyCodeLine{00248\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ for\ nonsymmetric\ eigenvalue\ problems.}}
\DoxyCodeLine{00249\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 9:\ maximum\ size\ of\ the\ subproblems\ at\ the\ bottom\ of\ the}}
\DoxyCodeLine{00250\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ computation\ tree\ in\ the\ divide-\/and-\/conquer\ algorithm}}
\DoxyCodeLine{00251\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (used\ by\ xGELSD\ and\ xGESDD)}}
\DoxyCodeLine{00252\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =10:\ ieee\ NaN\ arithmetic\ can\ be\ trusted\ not\ to\ trap}}
\DoxyCodeLine{00253\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =11:\ infinity\ arithmetic\ can\ be\ trusted\ not\ to\ trap}}
\DoxyCodeLine{00254\ \textcolor{comment}{}}
\DoxyCodeLine{00255\ \textcolor{comment}{\ \ \ \ NAME\ \ \ \ (input)\ CHARACTER*(*)}}
\DoxyCodeLine{00256\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ The\ name\ of\ the\ calling\ subroutine,\ in\ either\ upper\ case\ or}}
\DoxyCodeLine{00257\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ lower\ case.}}
\DoxyCodeLine{00258\ \textcolor{comment}{}}
\DoxyCodeLine{00259\ \textcolor{comment}{\ \ \ \ OPTS\ \ \ \ (input)\ CHARACTER*(*)}}
\DoxyCodeLine{00260\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ The\ character\ options\ to\ the\ subroutine\ NAME,\ concatenated}}
\DoxyCodeLine{00261\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ into\ a\ single\ character\ string.\ \ For\ example,\ UPLO\ =\ 'U',}}
\DoxyCodeLine{00262\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ TRANS\ =\ 'T',\ and\ DIAG\ =\ 'N'\ for\ a\ triangular\ routine\ would}}
\DoxyCodeLine{00263\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ be\ specified\ as\ OPTS\ =\ 'UTN'.}}
\DoxyCodeLine{00264\ \textcolor{comment}{}}
\DoxyCodeLine{00265\ \textcolor{comment}{\ \ \ \ N1\ \ \ \ \ \ (input)\ INTEGER}}
\DoxyCodeLine{00266\ \textcolor{comment}{\ \ \ \ N2\ \ \ \ \ \ (input)\ INTEGER}}
\DoxyCodeLine{00267\ \textcolor{comment}{\ \ \ \ N3\ \ \ \ \ \ (input)\ INTEGER}}
\DoxyCodeLine{00268\ \textcolor{comment}{\ \ \ \ N4\ \ \ \ \ \ (input)\ INTEGER}}
\DoxyCodeLine{00269\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ Problem\ dimensions\ for\ the\ subroutine\ NAME;\ these\ may\ not\ all}}
\DoxyCodeLine{00270\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ be\ required.}}
\DoxyCodeLine{00271\ \textcolor{comment}{}}
\DoxyCodeLine{00272\ \textcolor{comment}{\ \ \ (ILAENV)\ (output)\ INTEGER}}
\DoxyCodeLine{00273\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ >=\ 0:\ the\ value\ of\ the\ parameter\ specified\ by\ ISPEC}}
\DoxyCodeLine{00274\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ <\ 0:\ \ if\ ILAENV\ =\ -\/k,\ the\ k-\/th\ argument\ had\ an\ illegal\ value.}}
\DoxyCodeLine{00275\ \textcolor{comment}{}}
\DoxyCodeLine{00276\ \textcolor{comment}{\ \ \ \ Further\ Details}}
\DoxyCodeLine{00277\ \textcolor{comment}{\ \ \ \ ===============}}
\DoxyCodeLine{00278\ \textcolor{comment}{}}
\DoxyCodeLine{00279\ \textcolor{comment}{\ \ \ \ The\ following\ conventions\ have\ been\ used\ when\ calling\ ILAENV\ from\ the}}
\DoxyCodeLine{00280\ \textcolor{comment}{\ \ \ \ LAPACK\ routines:}}
\DoxyCodeLine{00281\ \textcolor{comment}{\ \ \ \ 1)\ \ OPTS\ is\ a\ concatenation\ of\ all\ of\ the\ character\ options\ to}}
\DoxyCodeLine{00282\ \textcolor{comment}{\ \ \ \ \ \ \ \ subroutine\ NAME,\ in\ the\ same\ order\ that\ they\ appear\ in\ the}}
\DoxyCodeLine{00283\ \textcolor{comment}{\ \ \ \ \ \ \ \ argument\ list\ for\ NAME,\ even\ if\ they\ are\ not\ used\ in\ determining}}
\DoxyCodeLine{00284\ \textcolor{comment}{\ \ \ \ \ \ \ \ the\ value\ of\ the\ parameter\ specified\ by\ ISPEC.}}
\DoxyCodeLine{00285\ \textcolor{comment}{\ \ \ \ 2)\ \ The\ problem\ dimensions\ N1,\ N2,\ N3,\ N4\ are\ specified\ in\ the\ order}}
\DoxyCodeLine{00286\ \textcolor{comment}{\ \ \ \ \ \ \ \ that\ they\ appear\ in\ the\ argument\ list\ for\ NAME.\ \ N1\ is\ used}}
\DoxyCodeLine{00287\ \textcolor{comment}{\ \ \ \ \ \ \ \ first,\ N2\ second,\ and\ so\ on,\ and\ unused\ problem\ dimensions\ are}}
\DoxyCodeLine{00288\ \textcolor{comment}{\ \ \ \ \ \ \ \ passed\ a\ value\ of\ -\/1.}}
\DoxyCodeLine{00289\ \textcolor{comment}{\ \ \ \ 3)\ \ The\ parameter\ value\ returned\ by\ ILAENV\ is\ checked\ for\ validity\ in}}
\DoxyCodeLine{00290\ \textcolor{comment}{\ \ \ \ \ \ \ \ the\ calling\ subroutine.\ \ For\ example,\ ILAENV\ is\ used\ to\ retrieve}}
\DoxyCodeLine{00291\ \textcolor{comment}{\ \ \ \ \ \ \ \ the\ optimal\ blocksize\ for\ STRTRI\ as\ follows:}}
\DoxyCodeLine{00292\ \textcolor{comment}{}}
\DoxyCodeLine{00293\ \textcolor{comment}{\ \ \ \ \ \ \ \ NB\ =\ ILAENV(\ 1,\ 'STRTRI',\ UPLO\ //\ DIAG,\ N,\ -\/1,\ -\/1,\ -\/1\ )}}
\DoxyCodeLine{00294\ \textcolor{comment}{\ \ \ \ \ \ \ \ IF(\ NB.LE.1\ )\ NB\ =\ MAX(\ 1,\ N\ )}}
\DoxyCodeLine{00295\ \textcolor{comment}{}}
\DoxyCodeLine{00296\ \textcolor{comment}{\ \ \ \ =====================================================================}}
\DoxyCodeLine{00297\ \textcolor{comment}{*/}}
\DoxyCodeLine{00298\ }
\DoxyCodeLine{00299\ }
\DoxyCodeLine{00300\ \ \ \ \ \textcolor{keywordflow}{switch}\ (*ispec)\ \{}
\DoxyCodeLine{00301\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1:\ \ \textcolor{keywordflow}{goto}\ L100;}
\DoxyCodeLine{00302\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 2:\ \ \textcolor{keywordflow}{goto}\ L100;}
\DoxyCodeLine{00303\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:\ \ \textcolor{keywordflow}{goto}\ L100;}
\DoxyCodeLine{00304\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 4:\ \ \textcolor{keywordflow}{goto}\ L400;}
\DoxyCodeLine{00305\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 5:\ \ \textcolor{keywordflow}{goto}\ L500;}
\DoxyCodeLine{00306\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 6:\ \ \textcolor{keywordflow}{goto}\ L600;}
\DoxyCodeLine{00307\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 7:\ \ \textcolor{keywordflow}{goto}\ L700;}
\DoxyCodeLine{00308\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 8:\ \ \textcolor{keywordflow}{goto}\ L800;}
\DoxyCodeLine{00309\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 9:\ \ \textcolor{keywordflow}{goto}\ L900;}
\DoxyCodeLine{00310\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 10:\ \ \textcolor{keywordflow}{goto}\ L1000;}
\DoxyCodeLine{00311\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 11:\ \ \textcolor{keywordflow}{goto}\ L1100;}
\DoxyCodeLine{00312\ \ \ \ \ \}}
\DoxyCodeLine{00313\ }
\DoxyCodeLine{00314\ \textcolor{comment}{/*\ \ \ \ \ Invalid\ value\ for\ ISPEC\ */}}
\DoxyCodeLine{00315\ }
\DoxyCodeLine{00316\ \ \ \ \ ret\_val\ =\ -\/1;}
\DoxyCodeLine{00317\ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00318\ }
\DoxyCodeLine{00319\ L100:}
\DoxyCodeLine{00320\ }
\DoxyCodeLine{00321\ \textcolor{comment}{/*\ \ \ \ \ Convert\ NAME\ to\ upper\ case\ if\ the\ first\ character\ is\ lower\ case.\ */}}
\DoxyCodeLine{00322\ }
\DoxyCodeLine{00323\ \ \ \ \ ret\_val\ =\ 1;}
\DoxyCodeLine{00324\ \ \ \ \ s\_copy(subnam,\ name\_\_,\ (ftnlen)6,\ name\_len);}
\DoxyCodeLine{00325\ \ \ \ \ ic\ =\ *(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)subnam;}
\DoxyCodeLine{00326\ \ \ \ \ iz\ =\ \textcolor{charliteral}{'Z'};}
\DoxyCodeLine{00327\ \ \ \ \ \textcolor{keywordflow}{if}\ (iz\ ==\ 90\ ||\ iz\ ==\ 122)\ \{}
\DoxyCodeLine{00328\ }
\DoxyCodeLine{00329\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ ASCII\ character\ set\ */}}
\DoxyCodeLine{00330\ }
\DoxyCodeLine{00331\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (ic\ >=\ 97\ \&\&\ ic\ <=\ 122)\ \{}
\DoxyCodeLine{00332\ \ \ \ \ \ \ \ \ \ \ \ \ *(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)subnam\ =\ (\textcolor{keywordtype}{char})\ (ic\ -\/\ 32);}
\DoxyCodeLine{00333\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (i\_\_\ =\ 2;\ i\_\_\ <=\ 6;\ ++i\_\_)\ \{}
\DoxyCodeLine{00334\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ic\ =\ *(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)\&subnam[i\_\_\ -\/\ 1];}
\DoxyCodeLine{00335\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (ic\ >=\ 97\ \&\&\ ic\ <=\ 122)\ \{}
\DoxyCodeLine{00336\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)\&subnam[i\_\_\ -\/\ 1]\ =\ (\textcolor{keywordtype}{char})\ (ic\ -\/\ 32);}
\DoxyCodeLine{00337\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00338\ \textcolor{comment}{/*\ L10:\ */}}
\DoxyCodeLine{00339\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00340\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00341\ }
\DoxyCodeLine{00342\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (iz\ ==\ 233\ ||\ iz\ ==\ 169)\ \{}
\DoxyCodeLine{00343\ }
\DoxyCodeLine{00344\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ EBCDIC\ character\ set\ */}}
\DoxyCodeLine{00345\ }
\DoxyCodeLine{00346\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (ic\ >=\ 129\ \&\&\ ic\ <=\ 137\ ||\ ic\ >=\ 145\ \&\&\ ic\ <=\ 153\ ||\ ic\ >=\ 162\ \&\&}
\DoxyCodeLine{00347\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ic\ <=\ 169)\ \{}
\DoxyCodeLine{00348\ \ \ \ \ \ \ \ \ \ \ \ \ *(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)subnam\ =\ (\textcolor{keywordtype}{char})\ (ic\ +\ 64);}
\DoxyCodeLine{00349\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (i\_\_\ =\ 2;\ i\_\_\ <=\ 6;\ ++i\_\_)\ \{}
\DoxyCodeLine{00350\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ic\ =\ *(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)\&subnam[i\_\_\ -\/\ 1];}
\DoxyCodeLine{00351\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (ic\ >=\ 129\ \&\&\ ic\ <=\ 137\ ||\ ic\ >=\ 145\ \&\&\ ic\ <=\ 153\ ||\ ic\ >=}
\DoxyCodeLine{00352\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 162\ \&\&\ ic\ <=\ 169)\ \{}
\DoxyCodeLine{00353\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)\&subnam[i\_\_\ -\/\ 1]\ =\ (\textcolor{keywordtype}{char})\ (ic\ +\ 64);}
\DoxyCodeLine{00354\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00355\ \textcolor{comment}{/*\ L20:\ */}}
\DoxyCodeLine{00356\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00357\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00358\ }
\DoxyCodeLine{00359\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (iz\ ==\ 218\ ||\ iz\ ==\ 250)\ \{}
\DoxyCodeLine{00360\ }
\DoxyCodeLine{00361\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Prime\ machines:\ \ ASCII+128\ */}}
\DoxyCodeLine{00362\ }
\DoxyCodeLine{00363\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (ic\ >=\ 225\ \&\&\ ic\ <=\ 250)\ \{}
\DoxyCodeLine{00364\ \ \ \ \ \ \ \ \ \ \ \ \ *(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)subnam\ =\ (\textcolor{keywordtype}{char})\ (ic\ -\/\ 32);}
\DoxyCodeLine{00365\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (i\_\_\ =\ 2;\ i\_\_\ <=\ 6;\ ++i\_\_)\ \{}
\DoxyCodeLine{00366\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ic\ =\ *(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)\&subnam[i\_\_\ -\/\ 1];}
\DoxyCodeLine{00367\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (ic\ >=\ 225\ \&\&\ ic\ <=\ 250)\ \{}
\DoxyCodeLine{00368\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)\&subnam[i\_\_\ -\/\ 1]\ =\ (\textcolor{keywordtype}{char})\ (ic\ -\/\ 32);}
\DoxyCodeLine{00369\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00370\ \textcolor{comment}{/*\ L30:\ */}}
\DoxyCodeLine{00371\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00372\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00373\ \ \ \ \ \}}
\DoxyCodeLine{00374\ }
\DoxyCodeLine{00375\ \ \ \ \ *(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)c1\ =\ *(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)subnam;}
\DoxyCodeLine{00376\ \ \ \ \ sname\ =\ *(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)c1\ ==\ \textcolor{charliteral}{'S'}\ ||\ *(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)c1\ ==\ \textcolor{charliteral}{'D'};}
\DoxyCodeLine{00377\ \ \ \ \ cname\ =\ *(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)c1\ ==\ \textcolor{charliteral}{'C'}\ ||\ *(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)c1\ ==\ \textcolor{charliteral}{'Z'};}
\DoxyCodeLine{00378\ \ \ \ \ \textcolor{keywordflow}{if}\ (!\ (cname\ ||\ sname))\ \{}
\DoxyCodeLine{00379\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00380\ \ \ \ \ \}}
\DoxyCodeLine{00381\ \ \ \ \ s\_copy(c2,\ subnam\ +\ 1,\ (ftnlen)2,\ (ftnlen)2);}
\DoxyCodeLine{00382\ \ \ \ \ s\_copy(c3,\ subnam\ +\ 3,\ (ftnlen)3,\ (ftnlen)3);}
\DoxyCodeLine{00383\ \ \ \ \ s\_copy(c4,\ c3\ +\ 1,\ (ftnlen)2,\ (ftnlen)2);}
\DoxyCodeLine{00384\ }
\DoxyCodeLine{00385\ \ \ \ \ \textcolor{keywordflow}{switch}\ (*ispec)\ \{}
\DoxyCodeLine{00386\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1:\ \ \textcolor{keywordflow}{goto}\ L110;}
\DoxyCodeLine{00387\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 2:\ \ \textcolor{keywordflow}{goto}\ L200;}
\DoxyCodeLine{00388\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:\ \ \textcolor{keywordflow}{goto}\ L300;}
\DoxyCodeLine{00389\ \ \ \ \ \}}
\DoxyCodeLine{00390\ }
\DoxyCodeLine{00391\ L110:}
\DoxyCodeLine{00392\ }
\DoxyCodeLine{00393\ \textcolor{comment}{/*}}
\DoxyCodeLine{00394\ \textcolor{comment}{\ \ \ \ \ \ \ ISPEC\ =\ 1:\ \ block\ size}}
\DoxyCodeLine{00395\ \textcolor{comment}{}}
\DoxyCodeLine{00396\ \textcolor{comment}{\ \ \ \ \ \ \ In\ these\ examples,\ separate\ code\ is\ provided\ for\ setting\ NB\ for}}
\DoxyCodeLine{00397\ \textcolor{comment}{\ \ \ \ \ \ \ real\ and\ complex.\ \ We\ assume\ that\ NB\ will\ take\ the\ same\ value\ in}}
\DoxyCodeLine{00398\ \textcolor{comment}{\ \ \ \ \ \ \ single\ or\ double\ precision.}}
\DoxyCodeLine{00399\ \textcolor{comment}{*/}}
\DoxyCodeLine{00400\ }
\DoxyCodeLine{00401\ \ \ \ \ nb\ =\ 1;}
\DoxyCodeLine{00402\ }
\DoxyCodeLine{00403\ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c2,\ \textcolor{stringliteral}{"{}GE"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00404\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}TRF"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00405\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00406\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 64;}
\DoxyCodeLine{00407\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00408\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 64;}
\DoxyCodeLine{00409\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00410\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}QRF"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0\ ||\ s\_cmp(c3,}
\DoxyCodeLine{00411\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}RQF"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0\ ||\ s\_cmp(c3,\ \textcolor{stringliteral}{"{}LQF"{}},\ (ftnlen)}
\DoxyCodeLine{00412\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 3,\ (ftnlen)3)\ ==\ 0\ ||\ s\_cmp(c3,\ \textcolor{stringliteral}{"{}QLF"{}},\ (ftnlen)3,\ (ftnlen)3)}
\DoxyCodeLine{00413\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ==\ 0)\ \{}
\DoxyCodeLine{00414\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00415\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 32;}
\DoxyCodeLine{00416\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00417\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 32;}
\DoxyCodeLine{00418\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00419\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}HRD"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00420\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00421\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 32;}
\DoxyCodeLine{00422\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00423\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 32;}
\DoxyCodeLine{00424\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00425\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}BRD"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00426\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00427\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 32;}
\DoxyCodeLine{00428\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00429\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 32;}
\DoxyCodeLine{00430\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00431\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}TRI"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00432\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00433\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 64;}
\DoxyCodeLine{00434\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00435\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 64;}
\DoxyCodeLine{00436\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00437\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00438\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c2,\ \textcolor{stringliteral}{"{}PO"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00439\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}TRF"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00440\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00441\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 64;}
\DoxyCodeLine{00442\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00443\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 64;}
\DoxyCodeLine{00444\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00445\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00446\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c2,\ \textcolor{stringliteral}{"{}SY"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00447\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}TRF"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00448\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00449\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 64;}
\DoxyCodeLine{00450\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00451\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 64;}
\DoxyCodeLine{00452\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00453\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (sname\ \&\&\ s\_cmp(c3,\ \textcolor{stringliteral}{"{}TRD"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00454\ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 32;}
\DoxyCodeLine{00455\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (sname\ \&\&\ s\_cmp(c3,\ \textcolor{stringliteral}{"{}GST"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00456\ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 64;}
\DoxyCodeLine{00457\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00458\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (cname\ \&\&\ s\_cmp(c2,\ \textcolor{stringliteral}{"{}HE"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00459\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}TRF"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00460\ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 64;}
\DoxyCodeLine{00461\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}TRD"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00462\ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 32;}
\DoxyCodeLine{00463\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}GST"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00464\ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 64;}
\DoxyCodeLine{00465\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00466\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (sname\ \&\&\ s\_cmp(c2,\ \textcolor{stringliteral}{"{}OR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00467\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)c3\ ==\ \textcolor{charliteral}{'G'})\ \{}
\DoxyCodeLine{00468\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c4,\ \textcolor{stringliteral}{"{}QR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}RQ"{}},}
\DoxyCodeLine{00469\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}LQ"{}},\ (ftnlen)2,\ (}
\DoxyCodeLine{00470\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}QL"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==}
\DoxyCodeLine{00471\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}HR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(}
\DoxyCodeLine{00472\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c4,\ \textcolor{stringliteral}{"{}TR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}BR"{}},\ (}
\DoxyCodeLine{00473\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00474\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 32;}
\DoxyCodeLine{00475\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00476\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (*(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)c3\ ==\ \textcolor{charliteral}{'M'})\ \{}
\DoxyCodeLine{00477\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c4,\ \textcolor{stringliteral}{"{}QR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}RQ"{}},}
\DoxyCodeLine{00478\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}LQ"{}},\ (ftnlen)2,\ (}
\DoxyCodeLine{00479\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}QL"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==}
\DoxyCodeLine{00480\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}HR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(}
\DoxyCodeLine{00481\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c4,\ \textcolor{stringliteral}{"{}TR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}BR"{}},\ (}
\DoxyCodeLine{00482\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00483\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 32;}
\DoxyCodeLine{00484\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00485\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00486\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (cname\ \&\&\ s\_cmp(c2,\ \textcolor{stringliteral}{"{}UN"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00487\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)c3\ ==\ \textcolor{charliteral}{'G'})\ \{}
\DoxyCodeLine{00488\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c4,\ \textcolor{stringliteral}{"{}QR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}RQ"{}},}
\DoxyCodeLine{00489\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}LQ"{}},\ (ftnlen)2,\ (}
\DoxyCodeLine{00490\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}QL"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==}
\DoxyCodeLine{00491\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}HR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(}
\DoxyCodeLine{00492\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c4,\ \textcolor{stringliteral}{"{}TR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}BR"{}},\ (}
\DoxyCodeLine{00493\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00494\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 32;}
\DoxyCodeLine{00495\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00496\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (*(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)c3\ ==\ \textcolor{charliteral}{'M'})\ \{}
\DoxyCodeLine{00497\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c4,\ \textcolor{stringliteral}{"{}QR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}RQ"{}},}
\DoxyCodeLine{00498\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}LQ"{}},\ (ftnlen)2,\ (}
\DoxyCodeLine{00499\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}QL"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==}
\DoxyCodeLine{00500\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}HR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(}
\DoxyCodeLine{00501\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c4,\ \textcolor{stringliteral}{"{}TR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}BR"{}},\ (}
\DoxyCodeLine{00502\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00503\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 32;}
\DoxyCodeLine{00504\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00505\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00506\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c2,\ \textcolor{stringliteral}{"{}GB"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00507\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}TRF"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00508\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00509\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*n4\ <=\ 64)\ \{}
\DoxyCodeLine{00510\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 1;}
\DoxyCodeLine{00511\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00512\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 32;}
\DoxyCodeLine{00513\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00514\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00515\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*n4\ <=\ 64)\ \{}
\DoxyCodeLine{00516\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 1;}
\DoxyCodeLine{00517\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00518\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 32;}
\DoxyCodeLine{00519\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00520\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00521\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00522\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c2,\ \textcolor{stringliteral}{"{}PB"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00523\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}TRF"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00524\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00525\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*n2\ <=\ 64)\ \{}
\DoxyCodeLine{00526\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 1;}
\DoxyCodeLine{00527\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00528\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 32;}
\DoxyCodeLine{00529\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00530\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00531\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*n2\ <=\ 64)\ \{}
\DoxyCodeLine{00532\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 1;}
\DoxyCodeLine{00533\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00534\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 32;}
\DoxyCodeLine{00535\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00536\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00537\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00538\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c2,\ \textcolor{stringliteral}{"{}TR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00539\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}TRI"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00540\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00541\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 64;}
\DoxyCodeLine{00542\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00543\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 64;}
\DoxyCodeLine{00544\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00545\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00546\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c2,\ \textcolor{stringliteral}{"{}LA"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00547\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}UUM"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00548\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00549\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 64;}
\DoxyCodeLine{00550\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00551\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 64;}
\DoxyCodeLine{00552\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00553\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00554\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (sname\ \&\&\ s\_cmp(c2,\ \textcolor{stringliteral}{"{}ST"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00555\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}EBZ"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00556\ \ \ \ \ \ \ \ \ \ \ \ \ nb\ =\ 1;}
\DoxyCodeLine{00557\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00558\ \ \ \ \ \}}
\DoxyCodeLine{00559\ \ \ \ \ ret\_val\ =\ nb;}
\DoxyCodeLine{00560\ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00561\ }
\DoxyCodeLine{00562\ L200:}
\DoxyCodeLine{00563\ }
\DoxyCodeLine{00564\ \textcolor{comment}{/*\ \ \ \ \ ISPEC\ =\ 2:\ \ minimum\ block\ size\ */}}
\DoxyCodeLine{00565\ }
\DoxyCodeLine{00566\ \ \ \ \ nbmin\ =\ 2;}
\DoxyCodeLine{00567\ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c2,\ \textcolor{stringliteral}{"{}GE"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00568\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}QRF"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0\ ||\ s\_cmp(c3,\ \textcolor{stringliteral}{"{}RQF"{}},\ (}
\DoxyCodeLine{00569\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)3,\ (ftnlen)3)\ ==\ 0\ ||\ s\_cmp(c3,\ \textcolor{stringliteral}{"{}LQF"{}},\ (ftnlen)3,\ (}
\DoxyCodeLine{00570\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)3)\ ==\ 0\ ||\ s\_cmp(c3,\ \textcolor{stringliteral}{"{}QLF"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)}
\DoxyCodeLine{00571\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{00572\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00573\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nbmin\ =\ 2;}
\DoxyCodeLine{00574\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00575\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nbmin\ =\ 2;}
\DoxyCodeLine{00576\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00577\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}HRD"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00578\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00579\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nbmin\ =\ 2;}
\DoxyCodeLine{00580\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00581\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nbmin\ =\ 2;}
\DoxyCodeLine{00582\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00583\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}BRD"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00584\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00585\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nbmin\ =\ 2;}
\DoxyCodeLine{00586\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00587\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nbmin\ =\ 2;}
\DoxyCodeLine{00588\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00589\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}TRI"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00590\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00591\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nbmin\ =\ 2;}
\DoxyCodeLine{00592\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00593\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nbmin\ =\ 2;}
\DoxyCodeLine{00594\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00595\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00596\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c2,\ \textcolor{stringliteral}{"{}SY"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00597\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}TRF"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00598\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00599\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nbmin\ =\ 8;}
\DoxyCodeLine{00600\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00601\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nbmin\ =\ 8;}
\DoxyCodeLine{00602\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00603\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (sname\ \&\&\ s\_cmp(c3,\ \textcolor{stringliteral}{"{}TRD"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00604\ \ \ \ \ \ \ \ \ \ \ \ \ nbmin\ =\ 2;}
\DoxyCodeLine{00605\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00606\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (cname\ \&\&\ s\_cmp(c2,\ \textcolor{stringliteral}{"{}HE"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00607\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}TRD"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00608\ \ \ \ \ \ \ \ \ \ \ \ \ nbmin\ =\ 2;}
\DoxyCodeLine{00609\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00610\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (sname\ \&\&\ s\_cmp(c2,\ \textcolor{stringliteral}{"{}OR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00611\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)c3\ ==\ \textcolor{charliteral}{'G'})\ \{}
\DoxyCodeLine{00612\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c4,\ \textcolor{stringliteral}{"{}QR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}RQ"{}},}
\DoxyCodeLine{00613\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}LQ"{}},\ (ftnlen)2,\ (}
\DoxyCodeLine{00614\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}QL"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==}
\DoxyCodeLine{00615\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}HR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(}
\DoxyCodeLine{00616\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c4,\ \textcolor{stringliteral}{"{}TR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}BR"{}},\ (}
\DoxyCodeLine{00617\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00618\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nbmin\ =\ 2;}
\DoxyCodeLine{00619\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00620\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (*(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)c3\ ==\ \textcolor{charliteral}{'M'})\ \{}
\DoxyCodeLine{00621\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c4,\ \textcolor{stringliteral}{"{}QR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}RQ"{}},}
\DoxyCodeLine{00622\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}LQ"{}},\ (ftnlen)2,\ (}
\DoxyCodeLine{00623\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}QL"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==}
\DoxyCodeLine{00624\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}HR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(}
\DoxyCodeLine{00625\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c4,\ \textcolor{stringliteral}{"{}TR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}BR"{}},\ (}
\DoxyCodeLine{00626\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00627\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nbmin\ =\ 2;}
\DoxyCodeLine{00628\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00629\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00630\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (cname\ \&\&\ s\_cmp(c2,\ \textcolor{stringliteral}{"{}UN"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00631\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)c3\ ==\ \textcolor{charliteral}{'G'})\ \{}
\DoxyCodeLine{00632\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c4,\ \textcolor{stringliteral}{"{}QR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}RQ"{}},}
\DoxyCodeLine{00633\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}LQ"{}},\ (ftnlen)2,\ (}
\DoxyCodeLine{00634\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}QL"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==}
\DoxyCodeLine{00635\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}HR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(}
\DoxyCodeLine{00636\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c4,\ \textcolor{stringliteral}{"{}TR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}BR"{}},\ (}
\DoxyCodeLine{00637\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00638\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nbmin\ =\ 2;}
\DoxyCodeLine{00639\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00640\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (*(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)c3\ ==\ \textcolor{charliteral}{'M'})\ \{}
\DoxyCodeLine{00641\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c4,\ \textcolor{stringliteral}{"{}QR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}RQ"{}},}
\DoxyCodeLine{00642\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}LQ"{}},\ (ftnlen)2,\ (}
\DoxyCodeLine{00643\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}QL"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==}
\DoxyCodeLine{00644\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}HR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(}
\DoxyCodeLine{00645\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c4,\ \textcolor{stringliteral}{"{}TR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}BR"{}},\ (}
\DoxyCodeLine{00646\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00647\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nbmin\ =\ 2;}
\DoxyCodeLine{00648\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00649\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00650\ \ \ \ \ \}}
\DoxyCodeLine{00651\ \ \ \ \ ret\_val\ =\ nbmin;}
\DoxyCodeLine{00652\ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00653\ }
\DoxyCodeLine{00654\ L300:}
\DoxyCodeLine{00655\ }
\DoxyCodeLine{00656\ \textcolor{comment}{/*\ \ \ \ \ ISPEC\ =\ 3:\ \ crossover\ point\ */}}
\DoxyCodeLine{00657\ }
\DoxyCodeLine{00658\ \ \ \ \ nx\ =\ 0;}
\DoxyCodeLine{00659\ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c2,\ \textcolor{stringliteral}{"{}GE"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00660\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}QRF"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0\ ||\ s\_cmp(c3,\ \textcolor{stringliteral}{"{}RQF"{}},\ (}
\DoxyCodeLine{00661\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)3,\ (ftnlen)3)\ ==\ 0\ ||\ s\_cmp(c3,\ \textcolor{stringliteral}{"{}LQF"{}},\ (ftnlen)3,\ (}
\DoxyCodeLine{00662\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)3)\ ==\ 0\ ||\ s\_cmp(c3,\ \textcolor{stringliteral}{"{}QLF"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)}
\DoxyCodeLine{00663\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \{}
\DoxyCodeLine{00664\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00665\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nx\ =\ 128;}
\DoxyCodeLine{00666\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00667\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nx\ =\ 128;}
\DoxyCodeLine{00668\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00669\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}HRD"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00670\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00671\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nx\ =\ 128;}
\DoxyCodeLine{00672\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00673\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nx\ =\ 128;}
\DoxyCodeLine{00674\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00675\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}BRD"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00676\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname)\ \{}
\DoxyCodeLine{00677\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nx\ =\ 128;}
\DoxyCodeLine{00678\ \ \ \ \ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{00679\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nx\ =\ 128;}
\DoxyCodeLine{00680\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00681\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00682\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (s\_cmp(c2,\ \textcolor{stringliteral}{"{}SY"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00683\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (sname\ \&\&\ s\_cmp(c3,\ \textcolor{stringliteral}{"{}TRD"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00684\ \ \ \ \ \ \ \ \ \ \ \ \ nx\ =\ 32;}
\DoxyCodeLine{00685\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00686\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (cname\ \&\&\ s\_cmp(c2,\ \textcolor{stringliteral}{"{}HE"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00687\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c3,\ \textcolor{stringliteral}{"{}TRD"{}},\ (ftnlen)3,\ (ftnlen)3)\ ==\ 0)\ \{}
\DoxyCodeLine{00688\ \ \ \ \ \ \ \ \ \ \ \ \ nx\ =\ 32;}
\DoxyCodeLine{00689\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00690\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (sname\ \&\&\ s\_cmp(c2,\ \textcolor{stringliteral}{"{}OR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00691\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)c3\ ==\ \textcolor{charliteral}{'G'})\ \{}
\DoxyCodeLine{00692\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c4,\ \textcolor{stringliteral}{"{}QR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}RQ"{}},}
\DoxyCodeLine{00693\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}LQ"{}},\ (ftnlen)2,\ (}
\DoxyCodeLine{00694\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}QL"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==}
\DoxyCodeLine{00695\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}HR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(}
\DoxyCodeLine{00696\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c4,\ \textcolor{stringliteral}{"{}TR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}BR"{}},\ (}
\DoxyCodeLine{00697\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00698\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nx\ =\ 128;}
\DoxyCodeLine{00699\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00700\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00701\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (cname\ \&\&\ s\_cmp(c2,\ \textcolor{stringliteral}{"{}UN"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00702\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*(\textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{char}\ *)c3\ ==\ \textcolor{charliteral}{'G'})\ \{}
\DoxyCodeLine{00703\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (s\_cmp(c4,\ \textcolor{stringliteral}{"{}QR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}RQ"{}},}
\DoxyCodeLine{00704\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}LQ"{}},\ (ftnlen)2,\ (}
\DoxyCodeLine{00705\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}QL"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==}
\DoxyCodeLine{00706\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}HR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(}
\DoxyCodeLine{00707\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c4,\ \textcolor{stringliteral}{"{}TR"{}},\ (ftnlen)2,\ (ftnlen)2)\ ==\ 0\ ||\ s\_cmp(c4,\ \textcolor{stringliteral}{"{}BR"{}},\ (}
\DoxyCodeLine{00708\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)2,\ (ftnlen)2)\ ==\ 0)\ \{}
\DoxyCodeLine{00709\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ nx\ =\ 128;}
\DoxyCodeLine{00710\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00711\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{00712\ \ \ \ \ \}}
\DoxyCodeLine{00713\ \ \ \ \ ret\_val\ =\ nx;}
\DoxyCodeLine{00714\ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00715\ }
\DoxyCodeLine{00716\ L400:}
\DoxyCodeLine{00717\ }
\DoxyCodeLine{00718\ \textcolor{comment}{/*\ \ \ \ \ ISPEC\ =\ 4:\ \ number\ of\ shifts\ (used\ by\ xHSEQR)\ */}}
\DoxyCodeLine{00719\ }
\DoxyCodeLine{00720\ \ \ \ \ ret\_val\ =\ 6;}
\DoxyCodeLine{00721\ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00722\ }
\DoxyCodeLine{00723\ L500:}
\DoxyCodeLine{00724\ }
\DoxyCodeLine{00725\ \textcolor{comment}{/*\ \ \ \ \ ISPEC\ =\ 5:\ \ minimum\ column\ dimension\ (not\ used)\ */}}
\DoxyCodeLine{00726\ }
\DoxyCodeLine{00727\ \ \ \ \ ret\_val\ =\ 2;}
\DoxyCodeLine{00728\ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00729\ }
\DoxyCodeLine{00730\ L600:}
\DoxyCodeLine{00731\ }
\DoxyCodeLine{00732\ \textcolor{comment}{/*\ \ \ \ \ ISPEC\ =\ 6:\ \ crossover\ point\ for\ SVD\ (used\ by\ xGELSS\ and\ xGESVD)\ */}}
\DoxyCodeLine{00733\ }
\DoxyCodeLine{00734\ \ \ \ \ ret\_val\ =\ (integer)\ ((real)\ min(*n1,*n2)\ *\ 1.6f);}
\DoxyCodeLine{00735\ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00736\ }
\DoxyCodeLine{00737\ L700:}
\DoxyCodeLine{00738\ }
\DoxyCodeLine{00739\ \textcolor{comment}{/*\ \ \ \ \ ISPEC\ =\ 7:\ \ number\ of\ processors\ (not\ used)\ */}}
\DoxyCodeLine{00740\ }
\DoxyCodeLine{00741\ \ \ \ \ ret\_val\ =\ 1;}
\DoxyCodeLine{00742\ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00743\ }
\DoxyCodeLine{00744\ L800:}
\DoxyCodeLine{00745\ }
\DoxyCodeLine{00746\ \textcolor{comment}{/*\ \ \ \ \ ISPEC\ =\ 8:\ \ crossover\ point\ for\ multishift\ (used\ by\ xHSEQR)\ */}}
\DoxyCodeLine{00747\ }
\DoxyCodeLine{00748\ \ \ \ \ ret\_val\ =\ 50;}
\DoxyCodeLine{00749\ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00750\ }
\DoxyCodeLine{00751\ L900:}
\DoxyCodeLine{00752\ }
\DoxyCodeLine{00753\ \textcolor{comment}{/*}}
\DoxyCodeLine{00754\ \textcolor{comment}{\ \ \ \ \ \ \ ISPEC\ =\ 9:\ \ maximum\ size\ of\ the\ subproblems\ at\ the\ bottom\ of\ the}}
\DoxyCodeLine{00755\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ computation\ tree\ in\ the\ divide-\/and-\/conquer\ algorithm}}
\DoxyCodeLine{00756\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (used\ by\ xGELSD\ and\ xGESDD)}}
\DoxyCodeLine{00757\ \textcolor{comment}{*/}}
\DoxyCodeLine{00758\ }
\DoxyCodeLine{00759\ \ \ \ \ ret\_val\ =\ 25;}
\DoxyCodeLine{00760\ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00761\ }
\DoxyCodeLine{00762\ L1000:}
\DoxyCodeLine{00763\ }
\DoxyCodeLine{00764\ \textcolor{comment}{/*}}
\DoxyCodeLine{00765\ \textcolor{comment}{\ \ \ \ \ \ \ ISPEC\ =\ 10:\ ieee\ NaN\ arithmetic\ can\ be\ trusted\ not\ to\ trap}}
\DoxyCodeLine{00766\ \textcolor{comment}{}}
\DoxyCodeLine{00767\ \textcolor{comment}{\ \ \ \ \ \ \ ILAENV\ =\ 0}}
\DoxyCodeLine{00768\ \textcolor{comment}{*/}}
\DoxyCodeLine{00769\ \ \ \ \ ret\_val\ =\ 1;}
\DoxyCodeLine{00770\ \ \ \ \ \textcolor{keywordflow}{if}\ (ret\_val\ ==\ 1)\ \{}
\DoxyCodeLine{00771\ \ \ \ \ \ \ \ \ ret\_val\ =\ ieeeck\_(\&c\_\_0,\ \&c\_b163,\ \&c\_b164);}
\DoxyCodeLine{00772\ \ \ \ \ \}}
\DoxyCodeLine{00773\ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00774\ }
\DoxyCodeLine{00775\ L1100:}
\DoxyCodeLine{00776\ }
\DoxyCodeLine{00777\ \textcolor{comment}{/*}}
\DoxyCodeLine{00778\ \textcolor{comment}{\ \ \ \ \ \ \ ISPEC\ =\ 11:\ infinity\ arithmetic\ can\ be\ trusted\ not\ to\ trap}}
\DoxyCodeLine{00779\ \textcolor{comment}{}}
\DoxyCodeLine{00780\ \textcolor{comment}{\ \ \ \ \ \ \ ILAENV\ =\ 0}}
\DoxyCodeLine{00781\ \textcolor{comment}{*/}}
\DoxyCodeLine{00782\ \ \ \ \ ret\_val\ =\ 1;}
\DoxyCodeLine{00783\ \ \ \ \ \textcolor{keywordflow}{if}\ (ret\_val\ ==\ 1)\ \{}
\DoxyCodeLine{00784\ \ \ \ \ \ \ \ \ ret\_val\ =\ ieeeck\_(\&c\_\_1,\ \&c\_b163,\ \&c\_b164);}
\DoxyCodeLine{00785\ \ \ \ \ \}}
\DoxyCodeLine{00786\ \ \ \ \ \textcolor{keywordflow}{return}\ ret\_val;}
\DoxyCodeLine{00787\ }
\DoxyCodeLine{00788\ \textcolor{comment}{/*\ \ \ \ \ End\ of\ ILAENV\ */}}
\DoxyCodeLine{00789\ }
\DoxyCodeLine{00790\ \}\ \textcolor{comment}{/*\ ilaenv\_\ */}}
\DoxyCodeLine{00791\ }
\DoxyCodeLine{00792\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}\ sposv\_(\textcolor{keywordtype}{char}\ *uplo,\ integer\ *n,\ integer\ *nrhs,\ real\ *a,}
\DoxyCodeLine{00793\ \ \ \ \ \ \ \ \ integer\ *lda,\ real\ *b,\ integer\ *ldb,\ integer\ *info)}
\DoxyCodeLine{00794\ \{}
\DoxyCodeLine{00795\ \ \ \ \ \textcolor{comment}{/*\ System\ generated\ locals\ */}}
\DoxyCodeLine{00796\ \ \ \ \ integer\ a\_dim1,\ a\_offset,\ b\_dim1,\ b\_offset,\ i\_\_1;}
\DoxyCodeLine{00797\ }
\DoxyCodeLine{00798\ \ \ \ \ \textcolor{comment}{/*\ Local\ variables\ */}}
\DoxyCodeLine{00799\ \ \ \ \ \textcolor{keyword}{extern}\ logical\ lsame\_(\textcolor{keywordtype}{char}\ *,\ \textcolor{keywordtype}{char}\ *);}
\DoxyCodeLine{00800\ \ \ \ \ \textcolor{keyword}{extern}\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}\ xerbla\_(\textcolor{keywordtype}{char}\ *,\ integer\ *),\ spotrf\_(}
\DoxyCodeLine{00801\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}\ *,\ integer\ *,\ real\ *,\ integer\ *,\ integer\ *),\ spotrs\_(}
\DoxyCodeLine{00802\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}\ *,\ integer\ *,\ integer\ *,\ real\ *,\ integer\ *,\ real\ *,\ integer\ *}
\DoxyCodeLine{00803\ \ \ \ \ \ \ \ \ \ \ \ \ ,\ integer\ *);}
\DoxyCodeLine{00804\ }
\DoxyCodeLine{00805\ }
\DoxyCodeLine{00806\ \textcolor{comment}{/*}}
\DoxyCodeLine{00807\ \textcolor{comment}{\ \ \ \ -\/-\/\ LAPACK\ driver\ routine\ (version\ 3.0)\ -\/-\/}}
\DoxyCodeLine{00808\ \textcolor{comment}{\ \ \ \ \ \ \ Univ.\ of\ Tennessee,\ Univ.\ of\ California\ Berkeley,\ NAG\ Ltd.,}}
\DoxyCodeLine{00809\ \textcolor{comment}{\ \ \ \ \ \ \ Courant\ Institute,\ Argonne\ National\ Lab,\ and\ Rice\ University}}
\DoxyCodeLine{00810\ \textcolor{comment}{\ \ \ \ \ \ \ March\ 31,\ 1993}}
\DoxyCodeLine{00811\ \textcolor{comment}{}}
\DoxyCodeLine{00812\ \textcolor{comment}{}}
\DoxyCodeLine{00813\ \textcolor{comment}{\ \ \ \ Purpose}}
\DoxyCodeLine{00814\ \textcolor{comment}{\ \ \ \ =======}}
\DoxyCodeLine{00815\ \textcolor{comment}{}}
\DoxyCodeLine{00816\ \textcolor{comment}{\ \ \ \ SPOSV\ computes\ the\ solution\ to\ a\ real\ system\ of\ linear\ equations}}
\DoxyCodeLine{00817\ \textcolor{comment}{\ \ \ \ \ \ \ A\ *\ X\ =\ B,}}
\DoxyCodeLine{00818\ \textcolor{comment}{\ \ \ \ where\ A\ is\ an\ N-\/by-\/N\ symmetric\ positive\ definite\ matrix\ and\ X\ and\ B}}
\DoxyCodeLine{00819\ \textcolor{comment}{\ \ \ \ are\ N-\/by-\/NRHS\ matrices.}}
\DoxyCodeLine{00820\ \textcolor{comment}{}}
\DoxyCodeLine{00821\ \textcolor{comment}{\ \ \ \ The\ Cholesky\ decomposition\ is\ used\ to\ factor\ A\ as}}
\DoxyCodeLine{00822\ \textcolor{comment}{\ \ \ \ \ \ \ A\ =\ U**T*\ U,\ \ if\ UPLO\ =\ 'U',\ or}}
\DoxyCodeLine{00823\ \textcolor{comment}{\ \ \ \ \ \ \ A\ =\ L\ *\ L**T,\ \ if\ UPLO\ =\ 'L',}}
\DoxyCodeLine{00824\ \textcolor{comment}{\ \ \ \ where\ U\ is\ an\ upper\ triangular\ matrix\ and\ L\ is\ a\ lower\ triangular}}
\DoxyCodeLine{00825\ \textcolor{comment}{\ \ \ \ matrix.\ \ The\ factored\ form\ of\ A\ is\ then\ used\ to\ solve\ the\ system\ of}}
\DoxyCodeLine{00826\ \textcolor{comment}{\ \ \ \ equations\ A\ *\ X\ =\ B.}}
\DoxyCodeLine{00827\ \textcolor{comment}{}}
\DoxyCodeLine{00828\ \textcolor{comment}{\ \ \ \ Arguments}}
\DoxyCodeLine{00829\ \textcolor{comment}{\ \ \ \ =========}}
\DoxyCodeLine{00830\ \textcolor{comment}{}}
\DoxyCodeLine{00831\ \textcolor{comment}{\ \ \ \ UPLO\ \ \ \ (input)\ CHARACTER*1}}
\DoxyCodeLine{00832\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 'U':\ \ Upper\ triangle\ of\ A\ is\ stored;}}
\DoxyCodeLine{00833\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 'L':\ \ Lower\ triangle\ of\ A\ is\ stored.}}
\DoxyCodeLine{00834\ \textcolor{comment}{}}
\DoxyCodeLine{00835\ \textcolor{comment}{\ \ \ \ N\ \ \ \ \ \ \ (input)\ INTEGER}}
\DoxyCodeLine{00836\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ The\ number\ of\ linear\ equations,\ i.e.,\ the\ order\ of\ the}}
\DoxyCodeLine{00837\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ matrix\ A.\ \ N\ >=\ 0.}}
\DoxyCodeLine{00838\ \textcolor{comment}{}}
\DoxyCodeLine{00839\ \textcolor{comment}{\ \ \ \ NRHS\ \ \ \ (input)\ INTEGER}}
\DoxyCodeLine{00840\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ The\ number\ of\ right\ hand\ sides,\ i.e.,\ the\ number\ of\ columns}}
\DoxyCodeLine{00841\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ of\ the\ matrix\ B.\ \ NRHS\ >=\ 0.}}
\DoxyCodeLine{00842\ \textcolor{comment}{}}
\DoxyCodeLine{00843\ \textcolor{comment}{\ \ \ \ A\ \ \ \ \ \ \ (input/output)\ REAL\ array,\ dimension\ (LDA,N)}}
\DoxyCodeLine{00844\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ On\ entry,\ the\ symmetric\ matrix\ A.\ \ If\ UPLO\ =\ 'U',\ the\ leading}}
\DoxyCodeLine{00845\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ N-\/by-\/N\ upper\ triangular\ part\ of\ A\ contains\ the\ upper}}
\DoxyCodeLine{00846\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ triangular\ part\ of\ the\ matrix\ A,\ and\ the\ strictly\ lower}}
\DoxyCodeLine{00847\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ triangular\ part\ of\ A\ is\ not\ referenced.\ \ If\ UPLO\ =\ 'L',\ the}}
\DoxyCodeLine{00848\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ leading\ N-\/by-\/N\ lower\ triangular\ part\ of\ A\ contains\ the\ lower}}
\DoxyCodeLine{00849\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ triangular\ part\ of\ the\ matrix\ A,\ and\ the\ strictly\ upper}}
\DoxyCodeLine{00850\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ triangular\ part\ of\ A\ is\ not\ referenced.}}
\DoxyCodeLine{00851\ \textcolor{comment}{}}
\DoxyCodeLine{00852\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ On\ exit,\ if\ INFO\ =\ 0,\ the\ factor\ U\ or\ L\ from\ the\ Cholesky}}
\DoxyCodeLine{00853\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ factorization\ A\ =\ U**T*U\ or\ A\ =\ L*L**T.}}
\DoxyCodeLine{00854\ \textcolor{comment}{}}
\DoxyCodeLine{00855\ \textcolor{comment}{\ \ \ \ LDA\ \ \ \ \ (input)\ INTEGER}}
\DoxyCodeLine{00856\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ The\ leading\ dimension\ of\ the\ array\ A.\ \ LDA\ >=\ max(1,N).}}
\DoxyCodeLine{00857\ \textcolor{comment}{}}
\DoxyCodeLine{00858\ \textcolor{comment}{\ \ \ \ B\ \ \ \ \ \ \ (input/output)\ REAL\ array,\ dimension\ (LDB,NRHS)}}
\DoxyCodeLine{00859\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ On\ entry,\ the\ N-\/by-\/NRHS\ right\ hand\ side\ matrix\ B.}}
\DoxyCodeLine{00860\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ On\ exit,\ if\ INFO\ =\ 0,\ the\ N-\/by-\/NRHS\ solution\ matrix\ X.}}
\DoxyCodeLine{00861\ \textcolor{comment}{}}
\DoxyCodeLine{00862\ \textcolor{comment}{\ \ \ \ LDB\ \ \ \ \ (input)\ INTEGER}}
\DoxyCodeLine{00863\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ The\ leading\ dimension\ of\ the\ array\ B.\ \ LDB\ >=\ max(1,N).}}
\DoxyCodeLine{00864\ \textcolor{comment}{}}
\DoxyCodeLine{00865\ \textcolor{comment}{\ \ \ \ INFO\ \ \ \ (output)\ INTEGER}}
\DoxyCodeLine{00866\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 0:\ \ successful\ exit}}
\DoxyCodeLine{00867\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ <\ 0:\ \ if\ INFO\ =\ -\/i,\ the\ i-\/th\ argument\ had\ an\ illegal\ value}}
\DoxyCodeLine{00868\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ >\ 0:\ \ if\ INFO\ =\ i,\ the\ leading\ minor\ of\ order\ i\ of\ A\ is\ not}}
\DoxyCodeLine{00869\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ positive\ definite,\ so\ the\ factorization\ could\ not\ be}}
\DoxyCodeLine{00870\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ completed,\ and\ the\ solution\ has\ not\ been\ computed.}}
\DoxyCodeLine{00871\ \textcolor{comment}{}}
\DoxyCodeLine{00872\ \textcolor{comment}{\ \ \ \ =====================================================================}}
\DoxyCodeLine{00873\ \textcolor{comment}{}}
\DoxyCodeLine{00874\ \textcolor{comment}{}}
\DoxyCodeLine{00875\ \textcolor{comment}{\ \ \ \ \ \ \ Test\ the\ input\ parameters.}}
\DoxyCodeLine{00876\ \textcolor{comment}{*/}}
\DoxyCodeLine{00877\ }
\DoxyCodeLine{00878\ \ \ \ \ \textcolor{comment}{/*\ Parameter\ adjustments\ */}}
\DoxyCodeLine{00879\ \ \ \ \ a\_dim1\ =\ *lda;}
\DoxyCodeLine{00880\ \ \ \ \ a\_offset\ =\ 1\ +\ a\_dim1;}
\DoxyCodeLine{00881\ \ \ \ \ a\ -\/=\ a\_offset;}
\DoxyCodeLine{00882\ \ \ \ \ b\_dim1\ =\ *ldb;}
\DoxyCodeLine{00883\ \ \ \ \ b\_offset\ =\ 1\ +\ b\_dim1;}
\DoxyCodeLine{00884\ \ \ \ \ b\ -\/=\ b\_offset;}
\DoxyCodeLine{00885\ }
\DoxyCodeLine{00886\ \ \ \ \ \textcolor{comment}{/*\ Function\ Body\ */}}
\DoxyCodeLine{00887\ \ \ \ \ *info\ =\ 0;}
\DoxyCodeLine{00888\ \ \ \ \ \textcolor{keywordflow}{if}\ (!\ lsame\_(uplo,\ \textcolor{stringliteral}{"{}U"{}})\ \&\&\ !\ lsame\_(uplo,\ \textcolor{stringliteral}{"{}L"{}}))\ \{}
\DoxyCodeLine{00889\ \ \ \ \ \ \ \ \ *info\ =\ -\/1;}
\DoxyCodeLine{00890\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (*n\ <\ 0)\ \{}
\DoxyCodeLine{00891\ \ \ \ \ \ \ \ \ *info\ =\ -\/2;}
\DoxyCodeLine{00892\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (*nrhs\ <\ 0)\ \{}
\DoxyCodeLine{00893\ \ \ \ \ \ \ \ \ *info\ =\ -\/3;}
\DoxyCodeLine{00894\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (*lda\ <\ max(1,*n))\ \{}
\DoxyCodeLine{00895\ \ \ \ \ \ \ \ \ *info\ =\ -\/5;}
\DoxyCodeLine{00896\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (*ldb\ <\ max(1,*n))\ \{}
\DoxyCodeLine{00897\ \ \ \ \ \ \ \ \ *info\ =\ -\/7;}
\DoxyCodeLine{00898\ \ \ \ \ \}}
\DoxyCodeLine{00899\ \ \ \ \ \textcolor{keywordflow}{if}\ (*info\ !=\ 0)\ \{}
\DoxyCodeLine{00900\ \ \ \ \ \ \ \ \ i\_\_1\ =\ -\/(*info);}
\DoxyCodeLine{00901\ \ \ \ \ \ \ \ \ xerbla\_(\textcolor{stringliteral}{"{}SPOSV\ "{}},\ \&i\_\_1);}
\DoxyCodeLine{00902\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{00903\ \ \ \ \ \}}
\DoxyCodeLine{00904\ }
\DoxyCodeLine{00905\ \textcolor{comment}{/*\ \ \ \ \ Compute\ the\ Cholesky\ factorization\ A\ =\ U'*U\ or\ A\ =\ L*L'.\ */}}
\DoxyCodeLine{00906\ }
\DoxyCodeLine{00907\ \ \ \ \ spotrf\_(uplo,\ n,\ \&a[a\_offset],\ lda,\ info);}
\DoxyCodeLine{00908\ \ \ \ \ \textcolor{keywordflow}{if}\ (*info\ ==\ 0)\ \{}
\DoxyCodeLine{00909\ }
\DoxyCodeLine{00910\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Solve\ the\ system\ A*X\ =\ B,\ overwriting\ B\ with\ X.\ */}}
\DoxyCodeLine{00911\ }
\DoxyCodeLine{00912\ \ \ \ \ \ \ \ \ spotrs\_(uplo,\ n,\ nrhs,\ \&a[a\_offset],\ lda,\ \&b[b\_offset],\ ldb,\ info);}
\DoxyCodeLine{00913\ }
\DoxyCodeLine{00914\ \ \ \ \ \}}
\DoxyCodeLine{00915\ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{00916\ }
\DoxyCodeLine{00917\ \textcolor{comment}{/*\ \ \ \ \ End\ of\ SPOSV\ */}}
\DoxyCodeLine{00918\ }
\DoxyCodeLine{00919\ \}\ \textcolor{comment}{/*\ sposv\_\ */}}
\DoxyCodeLine{00920\ }
\DoxyCodeLine{00921\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}\ spotf2\_(\textcolor{keywordtype}{char}\ *uplo,\ integer\ *n,\ real\ *a,\ integer\ *lda,}
\DoxyCodeLine{00922\ \ \ \ \ \ \ \ \ integer\ *info)}
\DoxyCodeLine{00923\ \{}
\DoxyCodeLine{00924\ \ \ \ \ \textcolor{comment}{/*\ System\ generated\ locals\ */}}
\DoxyCodeLine{00925\ \ \ \ \ integer\ a\_dim1,\ a\_offset,\ i\_\_1,\ i\_\_2,\ i\_\_3;}
\DoxyCodeLine{00926\ \ \ \ \ real\ r\_\_1;}
\DoxyCodeLine{00927\ }
\DoxyCodeLine{00928\ \ \ \ \ \textcolor{comment}{/*\ Builtin\ functions\ */}}
\DoxyCodeLine{00929\ \ \ \ \ \textcolor{keywordtype}{double}\ sqrt(doublereal);}
\DoxyCodeLine{00930\ }
\DoxyCodeLine{00931\ \ \ \ \ \textcolor{comment}{/*\ Local\ variables\ */}}
\DoxyCodeLine{00932\ \ \ \ \ \textcolor{keyword}{static}\ integer\ j;}
\DoxyCodeLine{00933\ \ \ \ \ \textcolor{keyword}{static}\ real\ ajj;}
\DoxyCodeLine{00934\ \ \ \ \ \textcolor{keyword}{extern}\ doublereal\ sdot\_(integer\ *,\ real\ *,\ integer\ *,\ real\ *,\ integer\ *);}
\DoxyCodeLine{00935\ \ \ \ \ \textcolor{keyword}{extern}\ logical\ lsame\_(\textcolor{keywordtype}{char}\ *,\ \textcolor{keywordtype}{char}\ *);}
\DoxyCodeLine{00936\ \ \ \ \ \textcolor{keyword}{extern}\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}\ sscal\_(integer\ *,\ real\ *,\ real\ *,\ integer\ *),}
\DoxyCodeLine{00937\ \ \ \ \ \ \ \ \ \ \ \ \ sgemv\_(\textcolor{keywordtype}{char}\ *,\ integer\ *,\ integer\ *,\ real\ *,\ real\ *,\ integer\ *,}
\DoxyCodeLine{00938\ \ \ \ \ \ \ \ \ \ \ \ \ real\ *,\ integer\ *,\ real\ *,\ real\ *,\ integer\ *);}
\DoxyCodeLine{00939\ \ \ \ \ \textcolor{keyword}{static}\ logical\ upper;}
\DoxyCodeLine{00940\ \ \ \ \ \textcolor{keyword}{extern}\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}\ xerbla\_(\textcolor{keywordtype}{char}\ *,\ integer\ *);}
\DoxyCodeLine{00941\ }
\DoxyCodeLine{00942\ }
\DoxyCodeLine{00943\ \textcolor{comment}{/*}}
\DoxyCodeLine{00944\ \textcolor{comment}{\ \ \ \ -\/-\/\ LAPACK\ routine\ (version\ 3.0)\ -\/-\/}}
\DoxyCodeLine{00945\ \textcolor{comment}{\ \ \ \ \ \ \ Univ.\ of\ Tennessee,\ Univ.\ of\ California\ Berkeley,\ NAG\ Ltd.,}}
\DoxyCodeLine{00946\ \textcolor{comment}{\ \ \ \ \ \ \ Courant\ Institute,\ Argonne\ National\ Lab,\ and\ Rice\ University}}
\DoxyCodeLine{00947\ \textcolor{comment}{\ \ \ \ \ \ \ February\ 29,\ 1992}}
\DoxyCodeLine{00948\ \textcolor{comment}{}}
\DoxyCodeLine{00949\ \textcolor{comment}{}}
\DoxyCodeLine{00950\ \textcolor{comment}{\ \ \ \ Purpose}}
\DoxyCodeLine{00951\ \textcolor{comment}{\ \ \ \ =======}}
\DoxyCodeLine{00952\ \textcolor{comment}{}}
\DoxyCodeLine{00953\ \textcolor{comment}{\ \ \ \ SPOTF2\ computes\ the\ Cholesky\ factorization\ of\ a\ real\ symmetric}}
\DoxyCodeLine{00954\ \textcolor{comment}{\ \ \ \ positive\ definite\ matrix\ A.}}
\DoxyCodeLine{00955\ \textcolor{comment}{}}
\DoxyCodeLine{00956\ \textcolor{comment}{\ \ \ \ The\ factorization\ has\ the\ form}}
\DoxyCodeLine{00957\ \textcolor{comment}{\ \ \ \ \ \ \ A\ =\ U'\ *\ U\ ,\ \ if\ UPLO\ =\ 'U',\ or}}
\DoxyCodeLine{00958\ \textcolor{comment}{\ \ \ \ \ \ \ A\ =\ L\ \ *\ L',\ \ if\ UPLO\ =\ 'L',}}
\DoxyCodeLine{00959\ \textcolor{comment}{\ \ \ \ where\ U\ is\ an\ upper\ triangular\ matrix\ and\ L\ is\ lower\ triangular.}}
\DoxyCodeLine{00960\ \textcolor{comment}{}}
\DoxyCodeLine{00961\ \textcolor{comment}{\ \ \ \ This\ is\ the\ unblocked\ version\ of\ the\ algorithm,\ calling\ Level\ 2\ BLAS.}}
\DoxyCodeLine{00962\ \textcolor{comment}{}}
\DoxyCodeLine{00963\ \textcolor{comment}{\ \ \ \ Arguments}}
\DoxyCodeLine{00964\ \textcolor{comment}{\ \ \ \ =========}}
\DoxyCodeLine{00965\ \textcolor{comment}{}}
\DoxyCodeLine{00966\ \textcolor{comment}{\ \ \ \ UPLO\ \ \ \ (input)\ CHARACTER*1}}
\DoxyCodeLine{00967\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ Specifies\ whether\ the\ upper\ or\ lower\ triangular\ part\ of\ the}}
\DoxyCodeLine{00968\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ symmetric\ matrix\ A\ is\ stored.}}
\DoxyCodeLine{00969\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 'U':\ \ Upper\ triangular}}
\DoxyCodeLine{00970\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 'L':\ \ Lower\ triangular}}
\DoxyCodeLine{00971\ \textcolor{comment}{}}
\DoxyCodeLine{00972\ \textcolor{comment}{\ \ \ \ N\ \ \ \ \ \ \ (input)\ INTEGER}}
\DoxyCodeLine{00973\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ The\ order\ of\ the\ matrix\ A.\ \ N\ >=\ 0.}}
\DoxyCodeLine{00974\ \textcolor{comment}{}}
\DoxyCodeLine{00975\ \textcolor{comment}{\ \ \ \ A\ \ \ \ \ \ \ (input/output)\ REAL\ array,\ dimension\ (LDA,N)}}
\DoxyCodeLine{00976\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ On\ entry,\ the\ symmetric\ matrix\ A.\ \ If\ UPLO\ =\ 'U',\ the\ leading}}
\DoxyCodeLine{00977\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ n\ by\ n\ upper\ triangular\ part\ of\ A\ contains\ the\ upper}}
\DoxyCodeLine{00978\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ triangular\ part\ of\ the\ matrix\ A,\ and\ the\ strictly\ lower}}
\DoxyCodeLine{00979\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ triangular\ part\ of\ A\ is\ not\ referenced.\ \ If\ UPLO\ =\ 'L',\ the}}
\DoxyCodeLine{00980\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ leading\ n\ by\ n\ lower\ triangular\ part\ of\ A\ contains\ the\ lower}}
\DoxyCodeLine{00981\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ triangular\ part\ of\ the\ matrix\ A,\ and\ the\ strictly\ upper}}
\DoxyCodeLine{00982\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ triangular\ part\ of\ A\ is\ not\ referenced.}}
\DoxyCodeLine{00983\ \textcolor{comment}{}}
\DoxyCodeLine{00984\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ On\ exit,\ if\ INFO\ =\ 0,\ the\ factor\ U\ or\ L\ from\ the\ Cholesky}}
\DoxyCodeLine{00985\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ factorization\ A\ =\ U'*U\ \ or\ A\ =\ L*L'.}}
\DoxyCodeLine{00986\ \textcolor{comment}{}}
\DoxyCodeLine{00987\ \textcolor{comment}{\ \ \ \ LDA\ \ \ \ \ (input)\ INTEGER}}
\DoxyCodeLine{00988\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ The\ leading\ dimension\ of\ the\ array\ A.\ \ LDA\ >=\ max(1,N).}}
\DoxyCodeLine{00989\ \textcolor{comment}{}}
\DoxyCodeLine{00990\ \textcolor{comment}{\ \ \ \ INFO\ \ \ \ (output)\ INTEGER}}
\DoxyCodeLine{00991\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 0:\ successful\ exit}}
\DoxyCodeLine{00992\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ <\ 0:\ if\ INFO\ =\ -\/k,\ the\ k-\/th\ argument\ had\ an\ illegal\ value}}
\DoxyCodeLine{00993\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ >\ 0:\ if\ INFO\ =\ k,\ the\ leading\ minor\ of\ order\ k\ is\ not}}
\DoxyCodeLine{00994\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ positive\ definite,\ and\ the\ factorization\ could\ not\ be}}
\DoxyCodeLine{00995\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ completed.}}
\DoxyCodeLine{00996\ \textcolor{comment}{}}
\DoxyCodeLine{00997\ \textcolor{comment}{\ \ \ \ =====================================================================}}
\DoxyCodeLine{00998\ \textcolor{comment}{}}
\DoxyCodeLine{00999\ \textcolor{comment}{}}
\DoxyCodeLine{01000\ \textcolor{comment}{\ \ \ \ \ \ \ Test\ the\ input\ parameters.}}
\DoxyCodeLine{01001\ \textcolor{comment}{*/}}
\DoxyCodeLine{01002\ }
\DoxyCodeLine{01003\ \ \ \ \ \textcolor{comment}{/*\ Parameter\ adjustments\ */}}
\DoxyCodeLine{01004\ \ \ \ \ a\_dim1\ =\ *lda;}
\DoxyCodeLine{01005\ \ \ \ \ a\_offset\ =\ 1\ +\ a\_dim1;}
\DoxyCodeLine{01006\ \ \ \ \ a\ -\/=\ a\_offset;}
\DoxyCodeLine{01007\ }
\DoxyCodeLine{01008\ \ \ \ \ \textcolor{comment}{/*\ Function\ Body\ */}}
\DoxyCodeLine{01009\ \ \ \ \ *info\ =\ 0;}
\DoxyCodeLine{01010\ \ \ \ \ upper\ =\ lsame\_(uplo,\ \textcolor{stringliteral}{"{}U"{}});}
\DoxyCodeLine{01011\ \ \ \ \ \textcolor{keywordflow}{if}\ (!\ upper\ \&\&\ !\ lsame\_(uplo,\ \textcolor{stringliteral}{"{}L"{}}))\ \{}
\DoxyCodeLine{01012\ \ \ \ \ \ \ \ \ *info\ =\ -\/1;}
\DoxyCodeLine{01013\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (*n\ <\ 0)\ \{}
\DoxyCodeLine{01014\ \ \ \ \ \ \ \ \ *info\ =\ -\/2;}
\DoxyCodeLine{01015\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (*lda\ <\ max(1,*n))\ \{}
\DoxyCodeLine{01016\ \ \ \ \ \ \ \ \ *info\ =\ -\/4;}
\DoxyCodeLine{01017\ \ \ \ \ \}}
\DoxyCodeLine{01018\ \ \ \ \ \textcolor{keywordflow}{if}\ (*info\ !=\ 0)\ \{}
\DoxyCodeLine{01019\ \ \ \ \ \ \ \ \ i\_\_1\ =\ -\/(*info);}
\DoxyCodeLine{01020\ \ \ \ \ \ \ \ \ xerbla\_(\textcolor{stringliteral}{"{}SPOTF2"{}},\ \&i\_\_1);}
\DoxyCodeLine{01021\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{01022\ \ \ \ \ \}}
\DoxyCodeLine{01023\ }
\DoxyCodeLine{01024\ \textcolor{comment}{/*\ \ \ \ \ Quick\ return\ if\ possible\ */}}
\DoxyCodeLine{01025\ }
\DoxyCodeLine{01026\ \ \ \ \ \textcolor{keywordflow}{if}\ (*n\ ==\ 0)\ \{}
\DoxyCodeLine{01027\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{01028\ \ \ \ \ \}}
\DoxyCodeLine{01029\ }
\DoxyCodeLine{01030\ \ \ \ \ \textcolor{keywordflow}{if}\ (upper)\ \{}
\DoxyCodeLine{01031\ }
\DoxyCodeLine{01032\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Compute\ the\ Cholesky\ factorization\ A\ =\ U'*U.\ */}}
\DoxyCodeLine{01033\ }
\DoxyCodeLine{01034\ \ \ \ \ \ \ \ \ i\_\_1\ =\ *n;}
\DoxyCodeLine{01035\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (j\ =\ 1;\ j\ <=\ i\_\_1;\ ++j)\ \{}
\DoxyCodeLine{01036\ }
\DoxyCodeLine{01037\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ Compute\ U(J,J)\ and\ test\ for\ non-\/positive-\/definiteness.\ */}}
\DoxyCodeLine{01038\ }
\DoxyCodeLine{01039\ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_2\ =\ j\ -\/\ 1;}
\DoxyCodeLine{01040\ \ \ \ \ \ \ \ \ \ \ \ \ ajj\ =\ a[j\ +\ j\ *\ a\_dim1]\ -\/\ sdot\_(\&i\_\_2,\ \&a[j\ *\ a\_dim1\ +\ 1],\ \&c\_\_1,}
\DoxyCodeLine{01041\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \&a[j\ *\ a\_dim1\ +\ 1],\ \&c\_\_1);}
\DoxyCodeLine{01042\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (ajj\ <=\ 0.f)\ \{}
\DoxyCodeLine{01043\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a[j\ +\ j\ *\ a\_dim1]\ =\ ajj;}
\DoxyCodeLine{01044\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ L30;}
\DoxyCodeLine{01045\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01046\ \ \ \ \ \ \ \ \ \ \ \ \ ajj\ =\ sqrt(ajj);}
\DoxyCodeLine{01047\ \ \ \ \ \ \ \ \ \ \ \ \ a[j\ +\ j\ *\ a\_dim1]\ =\ ajj;}
\DoxyCodeLine{01048\ }
\DoxyCodeLine{01049\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ Compute\ elements\ J+1:N\ of\ row\ J.\ */}}
\DoxyCodeLine{01050\ }
\DoxyCodeLine{01051\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (j\ <\ *n)\ \{}
\DoxyCodeLine{01052\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_2\ =\ j\ -\/\ 1;}
\DoxyCodeLine{01053\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_3\ =\ *n\ -\/\ j;}
\DoxyCodeLine{01054\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sgemv\_(\textcolor{stringliteral}{"{}Transpose"{}},\ \&i\_\_2,\ \&i\_\_3,\ \&c\_b181,\ \&a[(j\ +\ 1)\ *}
\DoxyCodeLine{01055\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\_dim1\ +\ 1],\ lda,\ \&a[j\ *\ a\_dim1\ +\ 1],\ \&c\_\_1,\ \&c\_b164,}
\DoxyCodeLine{01056\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \&a[j\ +\ (j\ +\ 1)\ *\ a\_dim1],\ lda);}
\DoxyCodeLine{01057\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_2\ =\ *n\ -\/\ j;}
\DoxyCodeLine{01058\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ r\_\_1\ =\ 1.f\ /\ ajj;}
\DoxyCodeLine{01059\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sscal\_(\&i\_\_2,\ \&r\_\_1,\ \&a[j\ +\ (j\ +\ 1)\ *\ a\_dim1],\ lda);}
\DoxyCodeLine{01060\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01061\ \textcolor{comment}{/*\ L10:\ */}}
\DoxyCodeLine{01062\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01063\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01064\ }
\DoxyCodeLine{01065\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Compute\ the\ Cholesky\ factorization\ A\ =\ L*L'.\ */}}
\DoxyCodeLine{01066\ }
\DoxyCodeLine{01067\ \ \ \ \ \ \ \ \ i\_\_1\ =\ *n;}
\DoxyCodeLine{01068\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (j\ =\ 1;\ j\ <=\ i\_\_1;\ ++j)\ \{}
\DoxyCodeLine{01069\ }
\DoxyCodeLine{01070\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ Compute\ L(J,J)\ and\ test\ for\ non-\/positive-\/definiteness.\ */}}
\DoxyCodeLine{01071\ }
\DoxyCodeLine{01072\ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_2\ =\ j\ -\/\ 1;}
\DoxyCodeLine{01073\ \ \ \ \ \ \ \ \ \ \ \ \ ajj\ =\ a[j\ +\ j\ *\ a\_dim1]\ -\/\ sdot\_(\&i\_\_2,\ \&a[j\ +\ a\_dim1],\ lda,\ \&a[j}
\DoxyCodeLine{01074\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ +\ a\_dim1],\ lda);}
\DoxyCodeLine{01075\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (ajj\ <=\ 0.f)\ \{}
\DoxyCodeLine{01076\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a[j\ +\ j\ *\ a\_dim1]\ =\ ajj;}
\DoxyCodeLine{01077\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ L30;}
\DoxyCodeLine{01078\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01079\ \ \ \ \ \ \ \ \ \ \ \ \ ajj\ =\ sqrt(ajj);}
\DoxyCodeLine{01080\ \ \ \ \ \ \ \ \ \ \ \ \ a[j\ +\ j\ *\ a\_dim1]\ =\ ajj;}
\DoxyCodeLine{01081\ }
\DoxyCodeLine{01082\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ Compute\ elements\ J+1:N\ of\ column\ J.\ */}}
\DoxyCodeLine{01083\ }
\DoxyCodeLine{01084\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (j\ <\ *n)\ \{}
\DoxyCodeLine{01085\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_2\ =\ *n\ -\/\ j;}
\DoxyCodeLine{01086\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_3\ =\ j\ -\/\ 1;}
\DoxyCodeLine{01087\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sgemv\_(\textcolor{stringliteral}{"{}No\ transpose"{}},\ \&i\_\_2,\ \&i\_\_3,\ \&c\_b181,\ \&a[j\ +\ 1\ +}
\DoxyCodeLine{01088\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\_dim1],\ lda,\ \&a[j\ +\ a\_dim1],\ lda,\ \&c\_b164,\ \&a[j\ +\ 1}
\DoxyCodeLine{01089\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ +\ j\ *\ a\_dim1],\ \&c\_\_1);}
\DoxyCodeLine{01090\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_2\ =\ *n\ -\/\ j;}
\DoxyCodeLine{01091\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ r\_\_1\ =\ 1.f\ /\ ajj;}
\DoxyCodeLine{01092\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sscal\_(\&i\_\_2,\ \&r\_\_1,\ \&a[j\ +\ 1\ +\ j\ *\ a\_dim1],\ \&c\_\_1);}
\DoxyCodeLine{01093\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01094\ \textcolor{comment}{/*\ L20:\ */}}
\DoxyCodeLine{01095\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01096\ \ \ \ \ \}}
\DoxyCodeLine{01097\ \ \ \ \ \textcolor{keywordflow}{goto}\ L40;}
\DoxyCodeLine{01098\ }
\DoxyCodeLine{01099\ L30:}
\DoxyCodeLine{01100\ \ \ \ \ *info\ =\ j;}
\DoxyCodeLine{01101\ }
\DoxyCodeLine{01102\ L40:}
\DoxyCodeLine{01103\ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{01104\ }
\DoxyCodeLine{01105\ \textcolor{comment}{/*\ \ \ \ \ End\ of\ SPOTF2\ */}}
\DoxyCodeLine{01106\ }
\DoxyCodeLine{01107\ \}\ \textcolor{comment}{/*\ spotf2\_\ */}}
\DoxyCodeLine{01108\ }
\DoxyCodeLine{01109\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}\ spotrf\_(\textcolor{keywordtype}{char}\ *uplo,\ integer\ *n,\ real\ *a,\ integer\ *lda,}
\DoxyCodeLine{01110\ \ \ \ \ \ \ \ \ integer\ *info)}
\DoxyCodeLine{01111\ \{}
\DoxyCodeLine{01112\ \ \ \ \ \textcolor{comment}{/*\ System\ generated\ locals\ */}}
\DoxyCodeLine{01113\ \ \ \ \ integer\ a\_dim1,\ a\_offset,\ i\_\_1,\ i\_\_2,\ i\_\_3,\ i\_\_4;}
\DoxyCodeLine{01114\ }
\DoxyCodeLine{01115\ \ \ \ \ \textcolor{comment}{/*\ Local\ variables\ */}}
\DoxyCodeLine{01116\ \ \ \ \ \textcolor{keyword}{static}\ integer\ j,\ jb,\ nb;}
\DoxyCodeLine{01117\ \ \ \ \ \textcolor{keyword}{extern}\ logical\ lsame\_(\textcolor{keywordtype}{char}\ *,\ \textcolor{keywordtype}{char}\ *);}
\DoxyCodeLine{01118\ \ \ \ \ \textcolor{keyword}{extern}\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}\ sgemm\_(\textcolor{keywordtype}{char}\ *,\ \textcolor{keywordtype}{char}\ *,\ integer\ *,\ integer\ *,}
\DoxyCodeLine{01119\ \ \ \ \ \ \ \ \ \ \ \ \ integer\ *,\ real\ *,\ real\ *,\ integer\ *,\ real\ *,\ integer\ *,\ real\ *,}
\DoxyCodeLine{01120\ \ \ \ \ \ \ \ \ \ \ \ \ real\ *,\ integer\ *);}
\DoxyCodeLine{01121\ \ \ \ \ \textcolor{keyword}{static}\ logical\ upper;}
\DoxyCodeLine{01122\ \ \ \ \ \textcolor{keyword}{extern}\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}\ strsm\_(\textcolor{keywordtype}{char}\ *,\ \textcolor{keywordtype}{char}\ *,\ \textcolor{keywordtype}{char}\ *,\ \textcolor{keywordtype}{char}\ *,}
\DoxyCodeLine{01123\ \ \ \ \ \ \ \ \ \ \ \ \ integer\ *,\ integer\ *,\ real\ *,\ real\ *,\ integer\ *,\ real\ *,\ integer\ *}
\DoxyCodeLine{01124\ \ \ \ \ \ \ \ \ \ \ \ \ ),\ ssyrk\_(\textcolor{keywordtype}{char}\ *,\ \textcolor{keywordtype}{char}\ *,\ integer}
\DoxyCodeLine{01125\ \ \ \ \ \ \ \ \ \ \ \ \ *,\ integer\ *,\ real\ *,\ real\ *,\ integer\ *,\ real\ *,\ real\ *,\ integer\ *}
\DoxyCodeLine{01126\ \ \ \ \ \ \ \ \ \ \ \ \ ),\ spotf2\_(\textcolor{keywordtype}{char}\ *,\ integer\ *,\ real\ *,\ integer\ *,}
\DoxyCodeLine{01127\ \ \ \ \ \ \ \ \ \ \ \ \ integer\ *),\ xerbla\_(\textcolor{keywordtype}{char}\ *,\ integer\ *);}
\DoxyCodeLine{01128\ \ \ \ \ \textcolor{keyword}{extern}\ integer\ ilaenv\_(integer\ *,\ \textcolor{keywordtype}{char}\ *,\ \textcolor{keywordtype}{char}\ *,\ integer\ *,\ integer\ *,}
\DoxyCodeLine{01129\ \ \ \ \ \ \ \ \ \ \ \ \ integer\ *,\ integer\ *,\ ftnlen,\ ftnlen);}
\DoxyCodeLine{01130\ }
\DoxyCodeLine{01131\ }
\DoxyCodeLine{01132\ \textcolor{comment}{/*}}
\DoxyCodeLine{01133\ \textcolor{comment}{\ \ \ \ -\/-\/\ LAPACK\ routine\ (version\ 3.0)\ -\/-\/}}
\DoxyCodeLine{01134\ \textcolor{comment}{\ \ \ \ \ \ \ Univ.\ of\ Tennessee,\ Univ.\ of\ California\ Berkeley,\ NAG\ Ltd.,}}
\DoxyCodeLine{01135\ \textcolor{comment}{\ \ \ \ \ \ \ Courant\ Institute,\ Argonne\ National\ Lab,\ and\ Rice\ University}}
\DoxyCodeLine{01136\ \textcolor{comment}{\ \ \ \ \ \ \ March\ 31,\ 1993}}
\DoxyCodeLine{01137\ \textcolor{comment}{}}
\DoxyCodeLine{01138\ \textcolor{comment}{}}
\DoxyCodeLine{01139\ \textcolor{comment}{\ \ \ \ Purpose}}
\DoxyCodeLine{01140\ \textcolor{comment}{\ \ \ \ =======}}
\DoxyCodeLine{01141\ \textcolor{comment}{}}
\DoxyCodeLine{01142\ \textcolor{comment}{\ \ \ \ SPOTRF\ computes\ the\ Cholesky\ factorization\ of\ a\ real\ symmetric}}
\DoxyCodeLine{01143\ \textcolor{comment}{\ \ \ \ positive\ definite\ matrix\ A.}}
\DoxyCodeLine{01144\ \textcolor{comment}{}}
\DoxyCodeLine{01145\ \textcolor{comment}{\ \ \ \ The\ factorization\ has\ the\ form}}
\DoxyCodeLine{01146\ \textcolor{comment}{\ \ \ \ \ \ \ A\ =\ U**T\ *\ U,\ \ if\ UPLO\ =\ 'U',\ or}}
\DoxyCodeLine{01147\ \textcolor{comment}{\ \ \ \ \ \ \ A\ =\ L\ \ *\ L**T,\ \ if\ UPLO\ =\ 'L',}}
\DoxyCodeLine{01148\ \textcolor{comment}{\ \ \ \ where\ U\ is\ an\ upper\ triangular\ matrix\ and\ L\ is\ lower\ triangular.}}
\DoxyCodeLine{01149\ \textcolor{comment}{}}
\DoxyCodeLine{01150\ \textcolor{comment}{\ \ \ \ This\ is\ the\ block\ version\ of\ the\ algorithm,\ calling\ Level\ 3\ BLAS.}}
\DoxyCodeLine{01151\ \textcolor{comment}{}}
\DoxyCodeLine{01152\ \textcolor{comment}{\ \ \ \ Arguments}}
\DoxyCodeLine{01153\ \textcolor{comment}{\ \ \ \ =========}}
\DoxyCodeLine{01154\ \textcolor{comment}{}}
\DoxyCodeLine{01155\ \textcolor{comment}{\ \ \ \ UPLO\ \ \ \ (input)\ CHARACTER*1}}
\DoxyCodeLine{01156\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 'U':\ \ Upper\ triangle\ of\ A\ is\ stored;}}
\DoxyCodeLine{01157\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 'L':\ \ Lower\ triangle\ of\ A\ is\ stored.}}
\DoxyCodeLine{01158\ \textcolor{comment}{}}
\DoxyCodeLine{01159\ \textcolor{comment}{\ \ \ \ N\ \ \ \ \ \ \ (input)\ INTEGER}}
\DoxyCodeLine{01160\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ The\ order\ of\ the\ matrix\ A.\ \ N\ >=\ 0.}}
\DoxyCodeLine{01161\ \textcolor{comment}{}}
\DoxyCodeLine{01162\ \textcolor{comment}{\ \ \ \ A\ \ \ \ \ \ \ (input/output)\ REAL\ array,\ dimension\ (LDA,N)}}
\DoxyCodeLine{01163\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ On\ entry,\ the\ symmetric\ matrix\ A.\ \ If\ UPLO\ =\ 'U',\ the\ leading}}
\DoxyCodeLine{01164\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ N-\/by-\/N\ upper\ triangular\ part\ of\ A\ contains\ the\ upper}}
\DoxyCodeLine{01165\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ triangular\ part\ of\ the\ matrix\ A,\ and\ the\ strictly\ lower}}
\DoxyCodeLine{01166\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ triangular\ part\ of\ A\ is\ not\ referenced.\ \ If\ UPLO\ =\ 'L',\ the}}
\DoxyCodeLine{01167\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ leading\ N-\/by-\/N\ lower\ triangular\ part\ of\ A\ contains\ the\ lower}}
\DoxyCodeLine{01168\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ triangular\ part\ of\ the\ matrix\ A,\ and\ the\ strictly\ upper}}
\DoxyCodeLine{01169\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ triangular\ part\ of\ A\ is\ not\ referenced.}}
\DoxyCodeLine{01170\ \textcolor{comment}{}}
\DoxyCodeLine{01171\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ On\ exit,\ if\ INFO\ =\ 0,\ the\ factor\ U\ or\ L\ from\ the\ Cholesky}}
\DoxyCodeLine{01172\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ factorization\ A\ =\ U**T*U\ or\ A\ =\ L*L**T.}}
\DoxyCodeLine{01173\ \textcolor{comment}{}}
\DoxyCodeLine{01174\ \textcolor{comment}{\ \ \ \ LDA\ \ \ \ \ (input)\ INTEGER}}
\DoxyCodeLine{01175\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ The\ leading\ dimension\ of\ the\ array\ A.\ \ LDA\ >=\ max(1,N).}}
\DoxyCodeLine{01176\ \textcolor{comment}{}}
\DoxyCodeLine{01177\ \textcolor{comment}{\ \ \ \ INFO\ \ \ \ (output)\ INTEGER}}
\DoxyCodeLine{01178\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 0:\ \ successful\ exit}}
\DoxyCodeLine{01179\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ <\ 0:\ \ if\ INFO\ =\ -\/i,\ the\ i-\/th\ argument\ had\ an\ illegal\ value}}
\DoxyCodeLine{01180\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ >\ 0:\ \ if\ INFO\ =\ i,\ the\ leading\ minor\ of\ order\ i\ is\ not}}
\DoxyCodeLine{01181\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ positive\ definite,\ and\ the\ factorization\ could\ not\ be}}
\DoxyCodeLine{01182\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ completed.}}
\DoxyCodeLine{01183\ \textcolor{comment}{}}
\DoxyCodeLine{01184\ \textcolor{comment}{\ \ \ \ =====================================================================}}
\DoxyCodeLine{01185\ \textcolor{comment}{}}
\DoxyCodeLine{01186\ \textcolor{comment}{}}
\DoxyCodeLine{01187\ \textcolor{comment}{\ \ \ \ \ \ \ Test\ the\ input\ parameters.}}
\DoxyCodeLine{01188\ \textcolor{comment}{*/}}
\DoxyCodeLine{01189\ }
\DoxyCodeLine{01190\ \ \ \ \ \textcolor{comment}{/*\ Parameter\ adjustments\ */}}
\DoxyCodeLine{01191\ \ \ \ \ a\_dim1\ =\ *lda;}
\DoxyCodeLine{01192\ \ \ \ \ a\_offset\ =\ 1\ +\ a\_dim1;}
\DoxyCodeLine{01193\ \ \ \ \ a\ -\/=\ a\_offset;}
\DoxyCodeLine{01194\ }
\DoxyCodeLine{01195\ \ \ \ \ \textcolor{comment}{/*\ Function\ Body\ */}}
\DoxyCodeLine{01196\ \ \ \ \ *info\ =\ 0;}
\DoxyCodeLine{01197\ \ \ \ \ upper\ =\ lsame\_(uplo,\ \textcolor{stringliteral}{"{}U"{}});}
\DoxyCodeLine{01198\ \ \ \ \ \textcolor{keywordflow}{if}\ (!\ upper\ \&\&\ !\ lsame\_(uplo,\ \textcolor{stringliteral}{"{}L"{}}))\ \{}
\DoxyCodeLine{01199\ \ \ \ \ \ \ \ \ *info\ =\ -\/1;}
\DoxyCodeLine{01200\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (*n\ <\ 0)\ \{}
\DoxyCodeLine{01201\ \ \ \ \ \ \ \ \ *info\ =\ -\/2;}
\DoxyCodeLine{01202\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (*lda\ <\ max(1,*n))\ \{}
\DoxyCodeLine{01203\ \ \ \ \ \ \ \ \ *info\ =\ -\/4;}
\DoxyCodeLine{01204\ \ \ \ \ \}}
\DoxyCodeLine{01205\ \ \ \ \ \textcolor{keywordflow}{if}\ (*info\ !=\ 0)\ \{}
\DoxyCodeLine{01206\ \ \ \ \ \ \ \ \ i\_\_1\ =\ -\/(*info);}
\DoxyCodeLine{01207\ \ \ \ \ \ \ \ \ xerbla\_(\textcolor{stringliteral}{"{}SPOTRF"{}},\ \&i\_\_1);}
\DoxyCodeLine{01208\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{01209\ \ \ \ \ \}}
\DoxyCodeLine{01210\ }
\DoxyCodeLine{01211\ \textcolor{comment}{/*\ \ \ \ \ Quick\ return\ if\ possible\ */}}
\DoxyCodeLine{01212\ }
\DoxyCodeLine{01213\ \ \ \ \ \textcolor{keywordflow}{if}\ (*n\ ==\ 0)\ \{}
\DoxyCodeLine{01214\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{01215\ \ \ \ \ \}}
\DoxyCodeLine{01216\ }
\DoxyCodeLine{01217\ \textcolor{comment}{/*\ \ \ \ \ Determine\ the\ block\ size\ for\ this\ environment.\ */}}
\DoxyCodeLine{01218\ }
\DoxyCodeLine{01219\ \ \ \ \ nb\ =\ ilaenv\_(\&c\_\_1,\ \textcolor{stringliteral}{"{}SPOTRF"{}},\ uplo,\ n,\ \&c\_n1,\ \&c\_n1,\ \&c\_n1,\ (ftnlen)6,\ (}
\DoxyCodeLine{01220\ \ \ \ \ \ \ \ \ \ \ \ \ ftnlen)1);}
\DoxyCodeLine{01221\ \ \ \ \ \textcolor{keywordflow}{if}\ (nb\ <=\ 1\ ||\ nb\ >=\ *n)\ \{}
\DoxyCodeLine{01222\ }
\DoxyCodeLine{01223\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Use\ unblocked\ code.\ */}}
\DoxyCodeLine{01224\ }
\DoxyCodeLine{01225\ \ \ \ \ \ \ \ \ spotf2\_(uplo,\ n,\ \&a[a\_offset],\ lda,\ info);}
\DoxyCodeLine{01226\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01227\ }
\DoxyCodeLine{01228\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Use\ blocked\ code.\ */}}
\DoxyCodeLine{01229\ }
\DoxyCodeLine{01230\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (upper)\ \{}
\DoxyCodeLine{01231\ }
\DoxyCodeLine{01232\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ Compute\ the\ Cholesky\ factorization\ A\ =\ U'*U.\ */}}
\DoxyCodeLine{01233\ }
\DoxyCodeLine{01234\ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_1\ =\ *n;}
\DoxyCodeLine{01235\ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_2\ =\ nb;}
\DoxyCodeLine{01236\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (j\ =\ 1;\ i\_\_2\ <\ 0\ ?\ j\ >=\ i\_\_1\ :\ j\ <=\ i\_\_1;\ j\ +=\ i\_\_2)\ \{}
\DoxyCodeLine{01237\ }
\DoxyCodeLine{01238\ \textcolor{comment}{/*}}
\DoxyCodeLine{01239\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Update\ and\ factorize\ the\ current\ diagonal\ block\ and\ test}}
\DoxyCodeLine{01240\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ for\ non-\/positive-\/definiteness.}}
\DoxyCodeLine{01241\ \textcolor{comment}{}}
\DoxyCodeLine{01242\ \textcolor{comment}{\ \ \ Computing\ MIN}}
\DoxyCodeLine{01243\ \textcolor{comment}{*/}}
\DoxyCodeLine{01244\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_3\ =\ nb,\ i\_\_4\ =\ *n\ -\/\ j\ +\ 1;}
\DoxyCodeLine{01245\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ jb\ =\ min(i\_\_3,i\_\_4);}
\DoxyCodeLine{01246\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_3\ =\ j\ -\/\ 1;}
\DoxyCodeLine{01247\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ssyrk\_(\textcolor{stringliteral}{"{}Upper"{}},\ \textcolor{stringliteral}{"{}Transpose"{}},\ \&jb,\ \&i\_\_3,\ \&c\_b181,\ \&a[j\ *}
\DoxyCodeLine{01248\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\_dim1\ +\ 1],\ lda,\ \&c\_b164,\ \&a[j\ +\ j\ *\ a\_dim1],\ lda);}
\DoxyCodeLine{01249\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ spotf2\_(\textcolor{stringliteral}{"{}Upper"{}},\ \&jb,\ \&a[j\ +\ j\ *\ a\_dim1],\ lda,\ info);}
\DoxyCodeLine{01250\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*info\ !=\ 0)\ \{}
\DoxyCodeLine{01251\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ L30;}
\DoxyCodeLine{01252\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01253\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (j\ +\ jb\ <=\ *n)\ \{}
\DoxyCodeLine{01254\ }
\DoxyCodeLine{01255\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Compute\ the\ current\ block\ row.\ */}}
\DoxyCodeLine{01256\ }
\DoxyCodeLine{01257\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_3\ =\ *n\ -\/\ j\ -\/\ jb\ +\ 1;}
\DoxyCodeLine{01258\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_4\ =\ j\ -\/\ 1;}
\DoxyCodeLine{01259\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sgemm\_(\textcolor{stringliteral}{"{}Transpose"{}},\ \textcolor{stringliteral}{"{}No\ transpose"{}},\ \&jb,\ \&i\_\_3,\ \&i\_\_4,\ \&}
\DoxyCodeLine{01260\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\_b181,\ \&a[j\ *\ a\_dim1\ +\ 1],\ lda,\ \&a[(j\ +\ jb)\ *}
\DoxyCodeLine{01261\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\_dim1\ +\ 1],\ lda,\ \&c\_b164,\ \&a[j\ +\ (j\ +\ jb)\ *}
\DoxyCodeLine{01262\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\_dim1],\ lda);}
\DoxyCodeLine{01263\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_3\ =\ *n\ -\/\ j\ -\/\ jb\ +\ 1;}
\DoxyCodeLine{01264\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ strsm\_(\textcolor{stringliteral}{"{}Left"{}},\ \textcolor{stringliteral}{"{}Upper"{}},\ \textcolor{stringliteral}{"{}Transpose"{}},\ \textcolor{stringliteral}{"{}Non-\/unit"{}},\ \&jb,\ \&}
\DoxyCodeLine{01265\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_3,\ \&c\_b164,\ \&a[j\ +\ j\ *\ a\_dim1],\ lda,\ \&a[j\ +\ (j}
\DoxyCodeLine{01266\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ +\ jb)\ *\ a\_dim1],\ lda);}
\DoxyCodeLine{01267\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01268\ \textcolor{comment}{/*\ L10:\ */}}
\DoxyCodeLine{01269\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01270\ }
\DoxyCodeLine{01271\ \ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01272\ }
\DoxyCodeLine{01273\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ Compute\ the\ Cholesky\ factorization\ A\ =\ L*L'.\ */}}
\DoxyCodeLine{01274\ }
\DoxyCodeLine{01275\ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_2\ =\ *n;}
\DoxyCodeLine{01276\ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_1\ =\ nb;}
\DoxyCodeLine{01277\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (j\ =\ 1;\ i\_\_1\ <\ 0\ ?\ j\ >=\ i\_\_2\ :\ j\ <=\ i\_\_2;\ j\ +=\ i\_\_1)\ \{}
\DoxyCodeLine{01278\ }
\DoxyCodeLine{01279\ \textcolor{comment}{/*}}
\DoxyCodeLine{01280\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Update\ and\ factorize\ the\ current\ diagonal\ block\ and\ test}}
\DoxyCodeLine{01281\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ for\ non-\/positive-\/definiteness.}}
\DoxyCodeLine{01282\ \textcolor{comment}{}}
\DoxyCodeLine{01283\ \textcolor{comment}{\ \ \ Computing\ MIN}}
\DoxyCodeLine{01284\ \textcolor{comment}{*/}}
\DoxyCodeLine{01285\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_3\ =\ nb,\ i\_\_4\ =\ *n\ -\/\ j\ +\ 1;}
\DoxyCodeLine{01286\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ jb\ =\ min(i\_\_3,i\_\_4);}
\DoxyCodeLine{01287\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_3\ =\ j\ -\/\ 1;}
\DoxyCodeLine{01288\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ssyrk\_(\textcolor{stringliteral}{"{}Lower"{}},\ \textcolor{stringliteral}{"{}No\ transpose"{}},\ \&jb,\ \&i\_\_3,\ \&c\_b181,\ \&a[j\ +}
\DoxyCodeLine{01289\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\_dim1],\ lda,\ \&c\_b164,\ \&a[j\ +\ j\ *\ a\_dim1],\ lda);}
\DoxyCodeLine{01290\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ spotf2\_(\textcolor{stringliteral}{"{}Lower"{}},\ \&jb,\ \&a[j\ +\ j\ *\ a\_dim1],\ lda,\ info);}
\DoxyCodeLine{01291\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (*info\ !=\ 0)\ \{}
\DoxyCodeLine{01292\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ L30;}
\DoxyCodeLine{01293\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01294\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (j\ +\ jb\ <=\ *n)\ \{}
\DoxyCodeLine{01295\ }
\DoxyCodeLine{01296\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Compute\ the\ current\ block\ column.\ */}}
\DoxyCodeLine{01297\ }
\DoxyCodeLine{01298\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_3\ =\ *n\ -\/\ j\ -\/\ jb\ +\ 1;}
\DoxyCodeLine{01299\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_4\ =\ j\ -\/\ 1;}
\DoxyCodeLine{01300\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ sgemm\_(\textcolor{stringliteral}{"{}No\ transpose"{}},\ \textcolor{stringliteral}{"{}Transpose"{}},\ \&i\_\_3,\ \&jb,\ \&i\_\_4,\ \&}
\DoxyCodeLine{01301\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\_b181,\ \&a[j\ +\ jb\ +\ a\_dim1],\ lda,\ \&a[j\ +\ a\_dim1],}
\DoxyCodeLine{01302\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lda,\ \&c\_b164,\ \&a[j\ +\ jb\ +\ j\ *\ a\_dim1],\ lda);}
\DoxyCodeLine{01303\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i\_\_3\ =\ *n\ -\/\ j\ -\/\ jb\ +\ 1;}
\DoxyCodeLine{01304\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ strsm\_(\textcolor{stringliteral}{"{}Right"{}},\ \textcolor{stringliteral}{"{}Lower"{}},\ \textcolor{stringliteral}{"{}Transpose"{}},\ \textcolor{stringliteral}{"{}Non-\/unit"{}},\ \&i\_\_3,\ \&}
\DoxyCodeLine{01305\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ jb,\ \&c\_b164,\ \&a[j\ +\ j\ *\ a\_dim1],\ lda,\ \&a[j\ +\ jb\ +}
\DoxyCodeLine{01306\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ j\ *\ a\_dim1],\ lda);}
\DoxyCodeLine{01307\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01308\ \textcolor{comment}{/*\ L20:\ */}}
\DoxyCodeLine{01309\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01310\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{01311\ \ \ \ \ \}}
\DoxyCodeLine{01312\ \ \ \ \ \textcolor{keywordflow}{goto}\ L40;}
\DoxyCodeLine{01313\ }
\DoxyCodeLine{01314\ L30:}
\DoxyCodeLine{01315\ \ \ \ \ *info\ =\ *info\ +\ j\ -\/\ 1;}
\DoxyCodeLine{01316\ }
\DoxyCodeLine{01317\ L40:}
\DoxyCodeLine{01318\ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{01319\ }
\DoxyCodeLine{01320\ \textcolor{comment}{/*\ \ \ \ \ End\ of\ SPOTRF\ */}}
\DoxyCodeLine{01321\ }
\DoxyCodeLine{01322\ \}\ \textcolor{comment}{/*\ spotrf\_\ */}}
\DoxyCodeLine{01323\ }
\DoxyCodeLine{01324\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}\ spotrs\_(\textcolor{keywordtype}{char}\ *uplo,\ integer\ *n,\ integer\ *nrhs,\ real\ *a,}
\DoxyCodeLine{01325\ \ \ \ \ \ \ \ \ integer\ *lda,\ real\ *b,\ integer\ *ldb,\ integer\ *info)}
\DoxyCodeLine{01326\ \{}
\DoxyCodeLine{01327\ \ \ \ \ \textcolor{comment}{/*\ System\ generated\ locals\ */}}
\DoxyCodeLine{01328\ \ \ \ \ integer\ a\_dim1,\ a\_offset,\ b\_dim1,\ b\_offset,\ i\_\_1;}
\DoxyCodeLine{01329\ }
\DoxyCodeLine{01330\ \ \ \ \ \textcolor{comment}{/*\ Local\ variables\ */}}
\DoxyCodeLine{01331\ \ \ \ \ \textcolor{keyword}{extern}\ logical\ lsame\_(\textcolor{keywordtype}{char}\ *,\ \textcolor{keywordtype}{char}\ *);}
\DoxyCodeLine{01332\ \ \ \ \ \textcolor{keyword}{static}\ logical\ upper;}
\DoxyCodeLine{01333\ \ \ \ \ \textcolor{keyword}{extern}\ \textcolor{comment}{/*\ Subroutine\ */}\ \textcolor{keywordtype}{int}\ strsm\_(\textcolor{keywordtype}{char}\ *,\ \textcolor{keywordtype}{char}\ *,\ \textcolor{keywordtype}{char}\ *,\ \textcolor{keywordtype}{char}\ *,}
\DoxyCodeLine{01334\ \ \ \ \ \ \ \ \ \ \ \ \ integer\ *,\ integer\ *,\ real\ *,\ real\ *,\ integer\ *,\ real\ *,\ integer\ *}
\DoxyCodeLine{01335\ \ \ \ \ \ \ \ \ \ \ \ \ ),\ xerbla\_(\textcolor{keywordtype}{char}\ *,\ integer\ *);}
\DoxyCodeLine{01336\ }
\DoxyCodeLine{01337\ }
\DoxyCodeLine{01338\ \textcolor{comment}{/*}}
\DoxyCodeLine{01339\ \textcolor{comment}{\ \ \ \ -\/-\/\ LAPACK\ routine\ (version\ 3.0)\ -\/-\/}}
\DoxyCodeLine{01340\ \textcolor{comment}{\ \ \ \ \ \ \ Univ.\ of\ Tennessee,\ Univ.\ of\ California\ Berkeley,\ NAG\ Ltd.,}}
\DoxyCodeLine{01341\ \textcolor{comment}{\ \ \ \ \ \ \ Courant\ Institute,\ Argonne\ National\ Lab,\ and\ Rice\ University}}
\DoxyCodeLine{01342\ \textcolor{comment}{\ \ \ \ \ \ \ March\ 31,\ 1993}}
\DoxyCodeLine{01343\ \textcolor{comment}{}}
\DoxyCodeLine{01344\ \textcolor{comment}{}}
\DoxyCodeLine{01345\ \textcolor{comment}{\ \ \ \ Purpose}}
\DoxyCodeLine{01346\ \textcolor{comment}{\ \ \ \ =======}}
\DoxyCodeLine{01347\ \textcolor{comment}{}}
\DoxyCodeLine{01348\ \textcolor{comment}{\ \ \ \ SPOTRS\ solves\ a\ system\ of\ linear\ equations\ A*X\ =\ B\ with\ a\ symmetric}}
\DoxyCodeLine{01349\ \textcolor{comment}{\ \ \ \ positive\ definite\ matrix\ A\ using\ the\ Cholesky\ factorization}}
\DoxyCodeLine{01350\ \textcolor{comment}{\ \ \ \ A\ =\ U**T*U\ or\ A\ =\ L*L**T\ computed\ by\ SPOTRF.}}
\DoxyCodeLine{01351\ \textcolor{comment}{}}
\DoxyCodeLine{01352\ \textcolor{comment}{\ \ \ \ Arguments}}
\DoxyCodeLine{01353\ \textcolor{comment}{\ \ \ \ =========}}
\DoxyCodeLine{01354\ \textcolor{comment}{}}
\DoxyCodeLine{01355\ \textcolor{comment}{\ \ \ \ UPLO\ \ \ \ (input)\ CHARACTER*1}}
\DoxyCodeLine{01356\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 'U':\ \ Upper\ triangle\ of\ A\ is\ stored;}}
\DoxyCodeLine{01357\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 'L':\ \ Lower\ triangle\ of\ A\ is\ stored.}}
\DoxyCodeLine{01358\ \textcolor{comment}{}}
\DoxyCodeLine{01359\ \textcolor{comment}{\ \ \ \ N\ \ \ \ \ \ \ (input)\ INTEGER}}
\DoxyCodeLine{01360\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ The\ order\ of\ the\ matrix\ A.\ \ N\ >=\ 0.}}
\DoxyCodeLine{01361\ \textcolor{comment}{}}
\DoxyCodeLine{01362\ \textcolor{comment}{\ \ \ \ NRHS\ \ \ \ (input)\ INTEGER}}
\DoxyCodeLine{01363\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ The\ number\ of\ right\ hand\ sides,\ i.e.,\ the\ number\ of\ columns}}
\DoxyCodeLine{01364\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ of\ the\ matrix\ B.\ \ NRHS\ >=\ 0.}}
\DoxyCodeLine{01365\ \textcolor{comment}{}}
\DoxyCodeLine{01366\ \textcolor{comment}{\ \ \ \ A\ \ \ \ \ \ \ (input)\ REAL\ array,\ dimension\ (LDA,N)}}
\DoxyCodeLine{01367\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ The\ triangular\ factor\ U\ or\ L\ from\ the\ Cholesky\ factorization}}
\DoxyCodeLine{01368\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ A\ =\ U**T*U\ or\ A\ =\ L*L**T,\ as\ computed\ by\ SPOTRF.}}
\DoxyCodeLine{01369\ \textcolor{comment}{}}
\DoxyCodeLine{01370\ \textcolor{comment}{\ \ \ \ LDA\ \ \ \ \ (input)\ INTEGER}}
\DoxyCodeLine{01371\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ The\ leading\ dimension\ of\ the\ array\ A.\ \ LDA\ >=\ max(1,N).}}
\DoxyCodeLine{01372\ \textcolor{comment}{}}
\DoxyCodeLine{01373\ \textcolor{comment}{\ \ \ \ B\ \ \ \ \ \ \ (input/output)\ REAL\ array,\ dimension\ (LDB,NRHS)}}
\DoxyCodeLine{01374\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ On\ entry,\ the\ right\ hand\ side\ matrix\ B.}}
\DoxyCodeLine{01375\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ On\ exit,\ the\ solution\ matrix\ X.}}
\DoxyCodeLine{01376\ \textcolor{comment}{}}
\DoxyCodeLine{01377\ \textcolor{comment}{\ \ \ \ LDB\ \ \ \ \ (input)\ INTEGER}}
\DoxyCodeLine{01378\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ The\ leading\ dimension\ of\ the\ array\ B.\ \ LDB\ >=\ max(1,N).}}
\DoxyCodeLine{01379\ \textcolor{comment}{}}
\DoxyCodeLine{01380\ \textcolor{comment}{\ \ \ \ INFO\ \ \ \ (output)\ INTEGER}}
\DoxyCodeLine{01381\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ =\ 0:\ \ successful\ exit}}
\DoxyCodeLine{01382\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ <\ 0:\ \ if\ INFO\ =\ -\/i,\ the\ i-\/th\ argument\ had\ an\ illegal\ value}}
\DoxyCodeLine{01383\ \textcolor{comment}{}}
\DoxyCodeLine{01384\ \textcolor{comment}{\ \ \ \ =====================================================================}}
\DoxyCodeLine{01385\ \textcolor{comment}{}}
\DoxyCodeLine{01386\ \textcolor{comment}{}}
\DoxyCodeLine{01387\ \textcolor{comment}{\ \ \ \ \ \ \ Test\ the\ input\ parameters.}}
\DoxyCodeLine{01388\ \textcolor{comment}{*/}}
\DoxyCodeLine{01389\ }
\DoxyCodeLine{01390\ \ \ \ \ \textcolor{comment}{/*\ Parameter\ adjustments\ */}}
\DoxyCodeLine{01391\ \ \ \ \ a\_dim1\ =\ *lda;}
\DoxyCodeLine{01392\ \ \ \ \ a\_offset\ =\ 1\ +\ a\_dim1;}
\DoxyCodeLine{01393\ \ \ \ \ a\ -\/=\ a\_offset;}
\DoxyCodeLine{01394\ \ \ \ \ b\_dim1\ =\ *ldb;}
\DoxyCodeLine{01395\ \ \ \ \ b\_offset\ =\ 1\ +\ b\_dim1;}
\DoxyCodeLine{01396\ \ \ \ \ b\ -\/=\ b\_offset;}
\DoxyCodeLine{01397\ }
\DoxyCodeLine{01398\ \ \ \ \ \textcolor{comment}{/*\ Function\ Body\ */}}
\DoxyCodeLine{01399\ \ \ \ \ *info\ =\ 0;}
\DoxyCodeLine{01400\ \ \ \ \ upper\ =\ lsame\_(uplo,\ \textcolor{stringliteral}{"{}U"{}});}
\DoxyCodeLine{01401\ \ \ \ \ \textcolor{keywordflow}{if}\ (!\ upper\ \&\&\ !\ lsame\_(uplo,\ \textcolor{stringliteral}{"{}L"{}}))\ \{}
\DoxyCodeLine{01402\ \ \ \ \ \ \ \ \ *info\ =\ -\/1;}
\DoxyCodeLine{01403\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (*n\ <\ 0)\ \{}
\DoxyCodeLine{01404\ \ \ \ \ \ \ \ \ *info\ =\ -\/2;}
\DoxyCodeLine{01405\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (*nrhs\ <\ 0)\ \{}
\DoxyCodeLine{01406\ \ \ \ \ \ \ \ \ *info\ =\ -\/3;}
\DoxyCodeLine{01407\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (*lda\ <\ max(1,*n))\ \{}
\DoxyCodeLine{01408\ \ \ \ \ \ \ \ \ *info\ =\ -\/5;}
\DoxyCodeLine{01409\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (*ldb\ <\ max(1,*n))\ \{}
\DoxyCodeLine{01410\ \ \ \ \ \ \ \ \ *info\ =\ -\/7;}
\DoxyCodeLine{01411\ \ \ \ \ \}}
\DoxyCodeLine{01412\ \ \ \ \ \textcolor{keywordflow}{if}\ (*info\ !=\ 0)\ \{}
\DoxyCodeLine{01413\ \ \ \ \ \ \ \ \ i\_\_1\ =\ -\/(*info);}
\DoxyCodeLine{01414\ \ \ \ \ \ \ \ \ xerbla\_(\textcolor{stringliteral}{"{}SPOTRS"{}},\ \&i\_\_1);}
\DoxyCodeLine{01415\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{01416\ \ \ \ \ \}}
\DoxyCodeLine{01417\ }
\DoxyCodeLine{01418\ \textcolor{comment}{/*\ \ \ \ \ Quick\ return\ if\ possible\ */}}
\DoxyCodeLine{01419\ }
\DoxyCodeLine{01420\ \ \ \ \ \textcolor{keywordflow}{if}\ (*n\ ==\ 0\ ||\ *nrhs\ ==\ 0)\ \{}
\DoxyCodeLine{01421\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{01422\ \ \ \ \ \}}
\DoxyCodeLine{01423\ }
\DoxyCodeLine{01424\ \ \ \ \ \textcolor{keywordflow}{if}\ (upper)\ \{}
\DoxyCodeLine{01425\ }
\DoxyCodeLine{01426\ \textcolor{comment}{/*}}
\DoxyCodeLine{01427\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ Solve\ A*X\ =\ B\ where\ A\ =\ U'*U.}}
\DoxyCodeLine{01428\ \textcolor{comment}{}}
\DoxyCodeLine{01429\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ Solve\ U'*X\ =\ B,\ overwriting\ B\ with\ X.}}
\DoxyCodeLine{01430\ \textcolor{comment}{*/}}
\DoxyCodeLine{01431\ }
\DoxyCodeLine{01432\ \ \ \ \ \ \ \ \ strsm\_(\textcolor{stringliteral}{"{}Left"{}},\ \textcolor{stringliteral}{"{}Upper"{}},\ \textcolor{stringliteral}{"{}Transpose"{}},\ \textcolor{stringliteral}{"{}Non-\/unit"{}},\ n,\ nrhs,\ \&c\_b164,\ \&a[}
\DoxyCodeLine{01433\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\_offset],\ lda,\ \&b[b\_offset],\ ldb);}
\DoxyCodeLine{01434\ }
\DoxyCodeLine{01435\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Solve\ U*X\ =\ B,\ overwriting\ B\ with\ X.\ */}}
\DoxyCodeLine{01436\ }
\DoxyCodeLine{01437\ \ \ \ \ \ \ \ \ strsm\_(\textcolor{stringliteral}{"{}Left"{}},\ \textcolor{stringliteral}{"{}Upper"{}},\ \textcolor{stringliteral}{"{}No\ transpose"{}},\ \textcolor{stringliteral}{"{}Non-\/unit"{}},\ n,\ nrhs,\ \&c\_b164,}
\DoxyCodeLine{01438\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \&a[a\_offset],\ lda,\ \&b[b\_offset],\ ldb);}
\DoxyCodeLine{01439\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{}
\DoxyCodeLine{01440\ }
\DoxyCodeLine{01441\ \textcolor{comment}{/*}}
\DoxyCodeLine{01442\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ Solve\ A*X\ =\ B\ where\ A\ =\ L*L'.}}
\DoxyCodeLine{01443\ \textcolor{comment}{}}
\DoxyCodeLine{01444\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ Solve\ L*X\ =\ B,\ overwriting\ B\ with\ X.}}
\DoxyCodeLine{01445\ \textcolor{comment}{*/}}
\DoxyCodeLine{01446\ }
\DoxyCodeLine{01447\ \ \ \ \ \ \ \ \ strsm\_(\textcolor{stringliteral}{"{}Left"{}},\ \textcolor{stringliteral}{"{}Lower"{}},\ \textcolor{stringliteral}{"{}No\ transpose"{}},\ \textcolor{stringliteral}{"{}Non-\/unit"{}},\ n,\ nrhs,\ \&c\_b164,}
\DoxyCodeLine{01448\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \&a[a\_offset],\ lda,\ \&b[b\_offset],\ ldb);}
\DoxyCodeLine{01449\ }
\DoxyCodeLine{01450\ \textcolor{comment}{/*\ \ \ \ \ \ \ \ Solve\ L'*X\ =\ B,\ overwriting\ B\ with\ X.\ */}}
\DoxyCodeLine{01451\ }
\DoxyCodeLine{01452\ \ \ \ \ \ \ \ \ strsm\_(\textcolor{stringliteral}{"{}Left"{}},\ \textcolor{stringliteral}{"{}Lower"{}},\ \textcolor{stringliteral}{"{}Transpose"{}},\ \textcolor{stringliteral}{"{}Non-\/unit"{}},\ n,\ nrhs,\ \&c\_b164,\ \&a[}
\DoxyCodeLine{01453\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\_offset],\ lda,\ \&b[b\_offset],\ ldb);}
\DoxyCodeLine{01454\ \ \ \ \ \}}
\DoxyCodeLine{01455\ }
\DoxyCodeLine{01456\ \ \ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{01457\ }
\DoxyCodeLine{01458\ \textcolor{comment}{/*\ \ \ \ \ End\ of\ SPOTRS\ */}}
\DoxyCodeLine{01459\ }
\DoxyCodeLine{01460\ \}\ \textcolor{comment}{/*\ spotrs\_\ */}}
\DoxyCodeLine{01461\ }

\end{DoxyCode}
