libflame  revision_anchor
FLA_lapack_f77_prototypes.h
Go to the documentation of this file.
00001 /*
00002 
00003     Copyright (C) 2014, The University of Texas at Austin
00004 
00005     This file is part of libflame and is available under the 3-Clause
00006     BSD license, which can be found in the LICENSE file at the top-level
00007     directory, or at http://opensource.org/licenses/BSD-3-Clause
00008 
00009 */
00010 
00011 // --- Name-mangling macro definitions -----------------------------------------
00012 
00013 // --- Define Fortran name-mangling macro --------------------------
00014 
00015 #define F77_spotrf F77_FUNC( spotrf , SPOTRF )
00016 #define F77_dpotrf F77_FUNC( dpotrf , DPOTRF )
00017 #define F77_cpotrf F77_FUNC( cpotrf , CPOTRF )
00018 #define F77_zpotrf F77_FUNC( zpotrf , ZPOTRF )
00019       
00020 #define F77_spotf2 F77_FUNC( spotf2 , SPOTF2 )
00021 #define F77_dpotf2 F77_FUNC( dpotf2 , DPOTF2 )
00022 #define F77_cpotf2 F77_FUNC( cpotf2 , CPOTF2 )
00023 #define F77_zpotf2 F77_FUNC( zpotf2 , ZPOTF2 )
00024       
00025       
00026 #define F77_sgetrf F77_FUNC( sgetrf , SGETRF )
00027 #define F77_dgetrf F77_FUNC( dgetrf , DGETRF )
00028 #define F77_cgetrf F77_FUNC( cgetrf , CGETRF )
00029 #define F77_zgetrf F77_FUNC( zgetrf , ZGETRF )
00030       
00031 #define F77_sgetf2 F77_FUNC( sgetf2 , SGETF2 )
00032 #define F77_dgetf2 F77_FUNC( dgetf2 , DGETF2 )
00033 #define F77_cgetf2 F77_FUNC( cgetf2 , CGETF2 )
00034 #define F77_zgetf2 F77_FUNC( zgetf2 , ZGETF2 )
00035       
00036 #define F77_sgeqrf F77_FUNC( sgeqrf , SGEQRF )
00037 #define F77_dgeqrf F77_FUNC( dgeqrf , DGEQRF )
00038 #define F77_cgeqrf F77_FUNC( cgeqrf , CGEQRF )
00039 #define F77_zgeqrf F77_FUNC( zgeqrf , ZGEQRF )
00040       
00041 #define F77_sgeqr2 F77_FUNC( sgeqr2 , SGEQR2 )
00042 #define F77_dgeqr2 F77_FUNC( dgeqr2 , DGEQR2 )
00043 #define F77_cgeqr2 F77_FUNC( cgeqr2 , CGEQR2 )
00044 #define F77_zgeqr2 F77_FUNC( zgeqr2 , ZGEQR2 )
00045 
00046 #define F77_sgeqrfp F77_FUNC( sgeqrfp , SGEQRFP )
00047 #define F77_dgeqrfp F77_FUNC( dgeqrfp , DGEQRFP )
00048 #define F77_cgeqrfp F77_FUNC( cgeqrfp , CGEQRFP )
00049 #define F77_zgeqrfp F77_FUNC( zgeqrfp , ZGEQRFP )
00050 
00051 #define F77_sgeqr2p F77_FUNC( sgeqr2p , SGEQR2P )
00052 #define F77_dgeqr2p F77_FUNC( dgeqr2p , DGEQR2P )
00053 #define F77_cgeqr2p F77_FUNC( cgeqr2p , CGEQR2P )
00054 #define F77_zgeqr2p F77_FUNC( zgeqr2p , ZGEQR2P )
00055       
00056 #define F77_sgeqr2 F77_FUNC( sgeqr2 , SGEQR2 )
00057 #define F77_dgeqr2 F77_FUNC( dgeqr2 , DGEQR2 )
00058 #define F77_cgeqr2 F77_FUNC( cgeqr2 , CGEQR2 )
00059 #define F77_zgeqr2 F77_FUNC( zgeqr2 , ZGEQR2 )
00060 
00061 #define F77_sgeqpf F77_FUNC( sgeqpf , SGEQPF )
00062 #define F77_dgeqpf F77_FUNC( dgeqpf , DGEQPF )
00063 #define F77_cgeqpf F77_FUNC( cgeqpf , CGEQPF )
00064 #define F77_zgeqpf F77_FUNC( zgeqpf , ZGEQPF )
00065       
00066 #define F77_sgeqp3 F77_FUNC( sgeqp3 , SGEQP3 )
00067 #define F77_dgeqp3 F77_FUNC( dgeqp3 , DGEQP3 )
00068 #define F77_cgeqp3 F77_FUNC( cgeqp3 , CGEQP3 )
00069 #define F77_zgeqp3 F77_FUNC( zgeqp3 , ZGEQP3 )
00070       
00071 #define F77_sgelsd F77_FUNC( sgelsd , SGELSD )
00072 #define F77_dgelsd F77_FUNC( dgelsd , DGELSD )
00073 #define F77_cgelsd F77_FUNC( cgelsd , CGELSD )
00074 #define F77_zgelsd F77_FUNC( zgelsd , ZGELSD )
00075 
00076 #define F77_sgelss F77_FUNC( sgelss , SGELSS )
00077 #define F77_dgelss F77_FUNC( dgelss , DGELSS )
00078 #define F77_cgelss F77_FUNC( cgelss , CGELSS )
00079 #define F77_zgelss F77_FUNC( zgelss , ZGELSS )
00080 
00081 #define F77_sgelqf F77_FUNC( sgelqf , SGELQF )
00082 #define F77_dgelqf F77_FUNC( dgelqf , DGELQF )
00083 #define F77_cgelqf F77_FUNC( cgelqf , CGELQF )
00084 #define F77_zgelqf F77_FUNC( zgelqf , ZGELQF )
00085       
00086 #define F77_sgelq2 F77_FUNC( sgelq2 , SGELQ2 )
00087 #define F77_dgelq2 F77_FUNC( dgelq2 , DGELQ2 )
00088 #define F77_cgelq2 F77_FUNC( cgelq2 , CGELQ2 )
00089 #define F77_zgelq2 F77_FUNC( zgelq2 , ZGELQ2 )
00090       
00091 #define F77_slauum F77_FUNC( slauum , SLAUUM )
00092 #define F77_dlauum F77_FUNC( dlauum , DLAUUM )
00093 #define F77_clauum F77_FUNC( clauum , CLAUUM )
00094 #define F77_zlauum F77_FUNC( zlauum , ZLAUUM )
00095       
00096 #define F77_slauu2 F77_FUNC( slauu2 , SLAUU2 )
00097 #define F77_dlauu2 F77_FUNC( dlauu2 , DLAUU2 )
00098 #define F77_clauu2 F77_FUNC( clauu2 , CLAUU2 )
00099 #define F77_zlauu2 F77_FUNC( zlauu2 , ZLAUU2 )
00100 
00101 #define F77_spotri F77_FUNC( spotri , SPOTRI )
00102 #define F77_dpotri F77_FUNC( dpotri , DPOTRI )
00103 #define F77_cpotri F77_FUNC( cpotri , CPOTRI )
00104 #define F77_zpotri F77_FUNC( zpotri , ZPOTRI )
00105       
00106 #define F77_strtri F77_FUNC( strtri , STRTRI )
00107 #define F77_dtrtri F77_FUNC( dtrtri , DTRTRI )
00108 #define F77_ctrtri F77_FUNC( ctrtri , CTRTRI )
00109 #define F77_ztrtri F77_FUNC( ztrtri , ZTRTRI )
00110       
00111 #define F77_strti2 F77_FUNC( strti2 , STRTI2 )
00112 #define F77_dtrti2 F77_FUNC( dtrti2 , DTRTI2 )
00113 #define F77_ctrti2 F77_FUNC( ctrti2 , CTRTI2 )
00114 #define F77_ztrti2 F77_FUNC( ztrti2 , ZTRTI2 )
00115       
00116       
00117 #define F77_strsyl F77_FUNC( strsyl , STRSYL )
00118 #define F77_dtrsyl F77_FUNC( dtrsyl , DTRSYL )
00119 #define F77_ctrsyl F77_FUNC( ctrsyl , CTRSYL )
00120 #define F77_ztrsyl F77_FUNC( ztrsyl , ZTRSYL )
00121       
00122       
00123 #define F77_sgehrd F77_FUNC( sgehrd , SGEHRD )
00124 #define F77_dgehrd F77_FUNC( dgehrd , DGEHRD )
00125 #define F77_cgehrd F77_FUNC( cgehrd , CGEHRD )
00126 #define F77_zgehrd F77_FUNC( zgehrd , ZGEHRD )
00127       
00128 #define F77_sgehd2 F77_FUNC( sgehd2 , SGEHD2 )
00129 #define F77_dgehd2 F77_FUNC( dgehd2 , DGEHD2 )
00130 #define F77_cgehd2 F77_FUNC( cgehd2 , CGEHD2 )
00131 #define F77_zgehd2 F77_FUNC( zgehd2 , ZGEHD2 )
00132       
00133       
00134 #define F77_ssytrd F77_FUNC( ssytrd , SSYTRD )
00135 #define F77_dsytrd F77_FUNC( dsytrd , DSYTRD )
00136 #define F77_chetrd F77_FUNC( chetrd , CHETRD )
00137 #define F77_zhetrd F77_FUNC( zhetrd , ZHETRD )
00138 
00139       
00140 #define F77_ssytd2 F77_FUNC( ssytd2 , SSYTD2 )
00141 #define F77_dsytd2 F77_FUNC( dsytd2 , DSYTD2 )
00142 #define F77_chetd2 F77_FUNC( chetd2 , CHETD2 )
00143 #define F77_zhetd2 F77_FUNC( zhetd2 , ZHETD2 )
00144  
00145            
00146 #define F77_sgebrd F77_FUNC( sgebrd , SGEBRD )
00147 #define F77_dgebrd F77_FUNC( dgebrd , DGEBRD )
00148 #define F77_cgebrd F77_FUNC( cgebrd , CGEBRD )
00149 #define F77_zgebrd F77_FUNC( zgebrd , ZGEBRD )
00150 
00151       
00152 #define F77_sgebd2 F77_FUNC( sgebd2 , SGEBD2 )
00153 #define F77_dgebd2 F77_FUNC( dgebd2 , DGEBD2 )
00154 #define F77_cgebd2 F77_FUNC( cgebd2 , CGEBD2 )
00155 #define F77_zgebd2 F77_FUNC( zgebd2 , ZGEBD2 )
00156       
00157       
00158 #define F77_ssygst F77_FUNC( ssygst , SSYGST )
00159 #define F77_dsygst F77_FUNC( dsygst , DSYGST )
00160 #define F77_chegst F77_FUNC( chegst , CHEGST )
00161 #define F77_zhegst F77_FUNC( zhegst , ZHEGST )
00162       
00163 #define F77_ssygs2 F77_FUNC( ssygs2 , SSYGS2 )
00164 #define F77_dsygs2 F77_FUNC( dsygs2 , DSYGS2 )
00165 #define F77_chegs2 F77_FUNC( chegs2 , CHEGS2 )
00166 #define F77_zhegs2 F77_FUNC( zhegs2 , ZHEGS2 )
00167       
00168       
00169 #define F77_slarft F77_FUNC( slarft , SLARFT )
00170 #define F77_dlarft F77_FUNC( dlarft , DLARFT )
00171 #define F77_clarft F77_FUNC( clarft , CLARFT )
00172 #define F77_zlarft F77_FUNC( zlarft , ZLARFT )
00173       
00174       
00175 #define F77_slarfg F77_FUNC( slarfg , SLARFG )
00176 #define F77_dlarfg F77_FUNC( dlarfg , DLARFG )
00177 #define F77_clarfg F77_FUNC( clarfg , CLARFG )
00178 #define F77_zlarfg F77_FUNC( zlarfg , ZLARFG )
00179 
00180 #define F77_slarfgp F77_FUNC( slarfgp , SLARFGP )
00181 #define F77_dlarfgp F77_FUNC( dlarfgp , DLARFGP )
00182 #define F77_clarfgp F77_FUNC( clarfgp , CLARFGP )
00183 #define F77_zlarfgp F77_FUNC( zlarfgp , ZLARFGP )
00184       
00185 #define F77_sorgqr F77_FUNC( sorgqr , SORGQR )
00186 #define F77_dorgqr F77_FUNC( dorgqr , DORGQR )
00187 #define F77_cungqr F77_FUNC( cungqr , CUNGQR )
00188 #define F77_zungqr F77_FUNC( zungqr , ZUNGQR )
00189 
00190 #define F77_sorg2r F77_FUNC( sorg2r , SORG2R )
00191 #define F77_dorg2r F77_FUNC( dorg2r , DORG2R )
00192 #define F77_cung2r F77_FUNC( cung2r , CUNG2R )
00193 #define F77_zung2r F77_FUNC( zung2r , ZUNG2R )
00194 
00195 #define F77_sormqr F77_FUNC( sormqr , SORMQR )
00196 #define F77_dormqr F77_FUNC( dormqr , DORMQR )
00197 #define F77_cunmqr F77_FUNC( cunmqr , CUNMQR )
00198 #define F77_zunmqr F77_FUNC( zunmqr , ZUNMQR )
00199 
00200 #define F77_sorm2r F77_FUNC( sorm2r , SORM2R )
00201 #define F77_dorm2r F77_FUNC( dorm2r , DORM2R )
00202 #define F77_cunm2r F77_FUNC( cunm2r , CUNM2R )
00203 #define F77_zunm2r F77_FUNC( zunm2r , ZUNM2R )
00204 
00205 #define F77_sormlq F77_FUNC( sormlq , SORMLQ )
00206 #define F77_dormlq F77_FUNC( dormlq , DORMLQ )
00207 #define F77_cunmlq F77_FUNC( cunmlq , CUNMLQ )
00208 #define F77_zunmlq F77_FUNC( zunmlq , ZUNMLQ )
00209 
00210 #define F77_sorml2 F77_FUNC( sorml2 , SORML2 )
00211 #define F77_dorml2 F77_FUNC( dorml2 , DORML2 )
00212 #define F77_cunml2 F77_FUNC( cunml2 , CUNML2 )
00213 #define F77_zunml2 F77_FUNC( zunml2 , ZUNML2 )
00214       
00215 #define F77_sorglq F77_FUNC( sorglq , SORGLQ )
00216 #define F77_dorglq F77_FUNC( dorglq , DORGLQ )
00217 #define F77_cunglq F77_FUNC( cunglq , CUNGLQ )
00218 #define F77_zunglq F77_FUNC( zunglq , ZUNGLQ )
00219 
00220 #define F77_sorgl2 F77_FUNC( sorgl2 , SORGL2 )
00221 #define F77_dorgl2 F77_FUNC( dorgl2 , DORGL2 )
00222 #define F77_cungl2 F77_FUNC( cungl2 , CUNGL2 )
00223 #define F77_zungl2 F77_FUNC( zungl2 , ZUNGL2 )
00224       
00225 #define F77_sorgtr F77_FUNC( sorgtr , SORGTR )
00226 #define F77_dorgtr F77_FUNC( dorgtr , DORGTR )
00227 #define F77_cungtr F77_FUNC( cungtr , CUNGTR )
00228 #define F77_zungtr F77_FUNC( zungtr , ZUNGTR )
00229       
00230       
00231 #define F77_sormtr F77_FUNC( sormtr , SORMTR )
00232 #define F77_dormtr F77_FUNC( dormtr , DORMTR )
00233 #define F77_cunmtr F77_FUNC( cunmtr , CUNMTR )
00234 #define F77_zunmtr F77_FUNC( zunmtr , ZUNMTR )
00235       
00236       
00237 #define F77_sorgbr F77_FUNC( sorgbr , SORGBR )
00238 #define F77_dorgbr F77_FUNC( dorgbr , DORGBR )
00239 #define F77_cungbr F77_FUNC( cungbr , CUNGBR )
00240 #define F77_zungbr F77_FUNC( zungbr , ZUNGBR )
00241       
00242       
00243 #define F77_sormbr F77_FUNC( sormbr , SORMBR )
00244 #define F77_dormbr F77_FUNC( dormbr , DORMBR )
00245 #define F77_cunmbr F77_FUNC( cunmbr , CUNMBR )
00246 #define F77_zunmbr F77_FUNC( zunmbr , ZUNMBR )
00247       
00248       
00249 #define F77_ssteqr F77_FUNC( ssteqr , SSTEQR )
00250 #define F77_dsteqr F77_FUNC( dsteqr , DSTEQR )
00251 #define F77_csteqr F77_FUNC( csteqr , CSTEQR )
00252 #define F77_zsteqr F77_FUNC( zsteqr , ZSTEQR )
00253       
00254       
00255 #define F77_sstedc F77_FUNC( sstedc , SSTEDC )
00256 #define F77_dstedc F77_FUNC( dstedc , DSTEDC )
00257 #define F77_cstedc F77_FUNC( cstedc , CSTEDC )
00258 #define F77_zstedc F77_FUNC( zstedc , ZSTEDC )
00259       
00260       
00261 #define F77_sstemr F77_FUNC( sstemr , SSTEMR )
00262 #define F77_dstemr F77_FUNC( dstemr , DSTEMR )
00263 #define F77_cstemr F77_FUNC( cstemr , CSTEMR )
00264 #define F77_zstemr F77_FUNC( zstemr , ZSTEMR )
00265       
00266       
00267 #define F77_ssyev  F77_FUNC( ssyev  , SSYEV  )
00268 #define F77_dsyev  F77_FUNC( dsyev  , DSYEV  )
00269 #define F77_cheev  F77_FUNC( cheev  , CHEEV  )
00270 #define F77_zheev  F77_FUNC( zheev  , ZHEEV  )
00271       
00272       
00273 #define F77_ssyevd F77_FUNC( ssyevd , SSYEVD )
00274 #define F77_dsyevd F77_FUNC( dsyevd , DSYEVD )
00275 #define F77_cheevd F77_FUNC( cheevd , CHEEVD )
00276 #define F77_zheevd F77_FUNC( zheevd , ZHEEVD )
00277       
00278       
00279 #define F77_ssyevr F77_FUNC( ssyevr , SSYEVR )
00280 #define F77_dsyevr F77_FUNC( dsyevr , DSYEVR )
00281 #define F77_cheevr F77_FUNC( cheevr , CHEEVR )
00282 #define F77_zheevr F77_FUNC( zheevr , ZHEEVR )
00283       
00284       
00285 #define F77_sbdsqr F77_FUNC( sbdsqr , SBDSQR )
00286 #define F77_dbdsqr F77_FUNC( dbdsqr , DBDSQR )
00287 #define F77_cbdsqr F77_FUNC( cbdsqr , CBDSQR )
00288 #define F77_zbdsqr F77_FUNC( zbdsqr , ZBDSQR )
00289       
00290       
00291 #define F77_sbdsdc F77_FUNC( sbdsdc , SBDSDC )
00292 #define F77_dbdsdc F77_FUNC( dbdsdc , DBDSDC )
00293       
00294       
00295 #define F77_sgesvd F77_FUNC( sgesvd , SGESVD )
00296 #define F77_dgesvd F77_FUNC( dgesvd , DGESVD )
00297 #define F77_cgesvd F77_FUNC( cgesvd , CGESVD )
00298 #define F77_zgesvd F77_FUNC( zgesvd , ZGESVD )
00299       
00300       
00301 #define F77_sgesdd F77_FUNC( sgesdd , SGESDD )
00302 #define F77_dgesdd F77_FUNC( dgesdd , DGESDD )
00303 #define F77_cgesdd F77_FUNC( cgesdd , CGESDD )
00304 #define F77_zgesdd F77_FUNC( zgesdd , ZGESDD )
00305       
00306       
00307 #define F77_slaswp F77_FUNC( slaswp , SLASWP )
00308 #define F77_dlaswp F77_FUNC( dlaswp , DLASWP )
00309 #define F77_claswp F77_FUNC( claswp , CLASWP )
00310 #define F77_zlaswp F77_FUNC( zlaswp , ZLASWP )
00311       
00312       
00313 #define F77_slaset F77_FUNC( slaset , SLASET )
00314 #define F77_dlaset F77_FUNC( dlaset , DLASET )
00315 #define F77_claset F77_FUNC( claset , CLASET )
00316 #define F77_zlaset F77_FUNC( zlaset , ZLASET )
00317       
00318 
00319 // --- Cholesky factorization ---
00320 
00321 int F77_spotrf( char* uplo, int* n, float*    a, int* lda, int* info );
00322 int F77_dpotrf( char* uplo, int* n, double*   a, int* lda, int* info );
00323 int F77_cpotrf( char* uplo, int* n, scomplex* a, int* lda, int* info );
00324 int F77_zpotrf( char* uplo, int* n, dcomplex* a, int* lda, int* info );
00325 
00326 int F77_spotf2( char* uplo, int* n, float*    a, int* lda, int* info );
00327 int F77_dpotf2( char* uplo, int* n, double*   a, int* lda, int* info );
00328 int F77_cpotf2( char* uplo, int* n, scomplex* a, int* lda, int* info );
00329 int F77_zpotf2( char* uplo, int* n, dcomplex* a, int* lda, int* info );
00330 
00331 // --- LU factorization with partial pivoting ---
00332 
00333 int F77_sgetrf( int* m, int* n, float*    a, int* lda, int* ipiv, int* info );
00334 int F77_dgetrf( int* m, int* n, double*   a, int* lda, int* ipiv, int* info );
00335 int F77_cgetrf( int* m, int* n, scomplex* a, int* lda, int* ipiv, int* info );
00336 int F77_zgetrf( int* m, int* n, dcomplex* a, int* lda, int* ipiv, int* info );
00337 
00338 int F77_sgetf2( int* m, int* n, float*    a, int* lda, int* ipiv, int* info );
00339 int F77_dgetf2( int* m, int* n, double*   a, int* lda, int* ipiv, int* info );
00340 int F77_cgetf2( int* m, int* n, scomplex* a, int* lda, int* ipiv, int* info );
00341 int F77_zgetf2( int* m, int* n, dcomplex* a, int* lda, int* ipiv, int* info );
00342 
00343 // --- QR factorization (classic) ---
00344 
00345 int F77_sgeqrf( int* m, int* n, float*    a, int* lda, float*    tau, float*    work, int* lwork, int* info );
00346 int F77_dgeqrf( int* m, int* n, double*   a, int* lda, double*   tau, double*   work, int* lwork, int* info );
00347 int F77_cgeqrf( int* m, int* n, scomplex* a, int* lda, scomplex* tau, scomplex* work, int* lwork, int* info );
00348 int F77_zgeqrf( int* m, int* n, dcomplex* a, int* lda, dcomplex* tau, dcomplex* work, int* lwork, int* info );
00349 
00350 int F77_sgeqr2( int* m, int* n, float*    a, int* lda, float*    tau, float*    work, int* info );
00351 int F77_dgeqr2( int* m, int* n, double*   a, int* lda, double*   tau, double*   work, int* info );
00352 int F77_cgeqr2( int* m, int* n, scomplex* a, int* lda, scomplex* tau, scomplex* work, int* info );
00353 int F77_zgeqr2( int* m, int* n, dcomplex* a, int* lda, dcomplex* tau, dcomplex* work, int* info );
00354 
00355 int F77_sgeqpf( int* m, int* n, float*    a, int* lda, int* jpvt, float*    tau, float*    work,                int* info );
00356 int F77_dgeqpf( int* m, int* n, double*   a, int* lda, int* jpvt, double*   tau, double*   work,                int* info );
00357 int F77_cgeqpf( int* m, int* n, scomplex* a, int* lda, int* jpvt, scomplex* tau, scomplex* work, float*  rwork, int* info );
00358 int F77_zgeqpf( int* m, int* n, dcomplex* a, int* lda, int* jpvt, dcomplex* tau, dcomplex* work, double* rwork, int* info );
00359 
00360 int F77_sgeqp3( int* m, int* n, float*    a, int* lda, int* jpvt, float*    tau, float*    work, int* lwork,                int* info );
00361 int F77_dgeqp3( int* m, int* n, double*   a, int* lda, int* jpvt, double*   tau, double*   work, int* lwork,                int* info );
00362 int F77_cgeqp3( int* m, int* n, scomplex* a, int* lda, int* jpvt, scomplex* tau, scomplex* work, int* lwork, float*  rwork, int* info );
00363 int F77_zgeqp3( int* m, int* n, dcomplex* a, int* lda, int* jpvt, dcomplex* tau, dcomplex* work, int* lwork, double* rwork, int* info );
00364 
00365 // --- LQ factorization (classic) ---
00366 
00367 int F77_sgelqf( int* m, int* n, float*    a, int* lda, float*    tau, float*    work, int* lwork, int* info );
00368 int F77_dgelqf( int* m, int* n, double*   a, int* lda, double*   tau, double*   work, int* lwork, int* info );
00369 int F77_cgelqf( int* m, int* n, scomplex* a, int* lda, scomplex* tau, scomplex* work, int* lwork, int* info );
00370 int F77_zgelqf( int* m, int* n, dcomplex* a, int* lda, dcomplex* tau, dcomplex* work, int* lwork, int* info );
00371 
00372 int F77_sgelq2( int* m, int* n, float*    a, int* lda, float*    tau, float*    work, int* info );
00373 int F77_dgelq2( int* m, int* n, double*   a, int* lda, double*   tau, double*   work, int* info );
00374 int F77_cgelq2( int* m, int* n, scomplex* a, int* lda, scomplex* tau, scomplex* work, int* info );
00375 int F77_zgelq2( int* m, int* n, dcomplex* a, int* lda, dcomplex* tau, dcomplex* work, int* info );
00376 
00377 // --- LS solver ---
00378 
00379 int F77_sgelsd( int* m, int* n, int* nrhs, float*    a, int* lda, float*    b, int* ldb, float*  s, float*  rcond, int* rank, float*    work, int* lwork,                int* iwork, int* info );
00380 int F77_dgelsd( int* m, int* n, int* nrhs, double*   a, int* lda, double*   b, int* ldb, double* s, double* rcond, int* rank, double*   work, int* lwork,                int* iwork, int* info );
00381 int F77_cgelsd( int* m, int* n, int* nrhs, scomplex* a, int* lda, scomplex* b, int* ldb, float*  s, float*  rcond, int* rank, scomplex* work, int* lwork, float*  rwork, int* iwork, int* info );
00382 int F77_zgelsd( int* m, int* n, int* nrhs, dcomplex* a, int* lda, dcomplex* b, int* ldb, double* s, double* rcond, int* rank, dcomplex* work, int* lwork, double* rwork, int* iwork, int* info );
00383 
00384 int F77_sgelss( int* m, int* n, int* nrhs, float*    a, int* lda, float*    b, int* ldb, float*  s, float*  rcond, int* rank, float*    work, int* lwork,                int* info );
00385 int F77_dgelss( int* m, int* n, int* nrhs, double*   a, int* lda, double*   b, int* ldb, double* s, double* rcond, int* rank, double*   work, int* lwork,                int* info );
00386 int F77_cgelss( int* m, int* n, int* nrhs, scomplex* a, int* lda, scomplex* b, int* ldb, float*  s, float*  rcond, int* rank, scomplex* work, int* lwork, float*  rwork, int* info );
00387 int F77_zgelss( int* m, int* n, int* nrhs, dcomplex* a, int* lda, dcomplex* b, int* ldb, double* s, double* rcond, int* rank, dcomplex* work, int* lwork, double* rwork, int* info );
00388 
00389 // --- Triangular-transpose matrix multiply ---
00390 
00391 int F77_slauum( char* uplo, int* n, float*    a, int* lda, int* info );
00392 int F77_dlauum( char* uplo, int* n, double*   a, int* lda, int* info );
00393 int F77_clauum( char* uplo, int* n, scomplex* a, int* lda, int* info );
00394 int F77_zlauum( char* uplo, int* n, dcomplex* a, int* lda, int* info );
00395 
00396 int F77_slauu2( char* uplo, int* n, float*    a, int* lda, int* info );
00397 int F77_dlauu2( char* uplo, int* n, double*   a, int* lda, int* info );
00398 int F77_clauu2( char* uplo, int* n, scomplex* a, int* lda, int* info );
00399 int F77_zlauu2( char* uplo, int* n, dcomplex* a, int* lda, int* info );
00400 
00401 // --- Symmetric (hermitian) positive definite matrix inversion ---
00402 
00403 int F77_spotri( char* uplo, int*  n, float*    buff_A, int*  ldim_A, int*  info );
00404 int F77_dpotri( char* uplo, int*  n, double*   buff_A, int*  ldim_A, int*  info );
00405 int F77_cpotri( char* uplo, int*  n, scomplex* buff_A, int*  ldim_A, int*  info );
00406 int F77_zpotri( char* uplo, int*  n, dcomplex* buff_A, int*  ldim_A, int*  info );
00407 
00408 // --- Triangular matrix inversion ---
00409 
00410 int F77_strtri( char* uplo, char* diag, int* n, float*    a, int* lda, int* info );
00411 int F77_dtrtri( char* uplo, char* diag, int* n, double*   a, int* lda, int* info );
00412 int F77_ctrtri( char* uplo, char* diag, int* n, scomplex* a, int* lda, int* info );
00413 int F77_ztrtri( char* uplo, char* diag, int* n, dcomplex* a, int* lda, int* info );
00414 
00415 int F77_strti2( char* uplo, char* diag, int* n, float*    a, int* lda, int* info );
00416 int F77_dtrti2( char* uplo, char* diag, int* n, double*   a, int* lda, int* info );
00417 int F77_ctrti2( char* uplo, char* diag, int* n, scomplex* a, int* lda, int* info );
00418 int F77_ztrti2( char* uplo, char* diag, int* n, dcomplex* a, int* lda, int* info );
00419 
00420 // --- Triangular Sylvester equation solve ---
00421 
00422 int F77_strsyl( char* transa, char* transb, int* isgn, int* m, int* n, float*    a, int* lda, float*    b, int* ldb, float*    c, int* ldc, float*    scale, int* info );
00423 int F77_dtrsyl( char* transa, char* transb, int* isgn, int* m, int* n, double*   a, int* lda, double*   b, int* ldb, double*   c, int* ldc, double*   scale, int* info );
00424 int F77_ctrsyl( char* transa, char* transb, int* isgn, int* m, int* n, scomplex* a, int* lda, scomplex* b, int* ldb, scomplex* c, int* ldc, float*    scale, int* info );
00425 int F77_ztrsyl( char* transa, char* transb, int* isgn, int* m, int* n, dcomplex* a, int* lda, dcomplex* b, int* ldb, dcomplex* c, int* ldc, double*   scale, int* info );
00426 
00427 // --- Reduction to upper Hessenberg form ---
00428 
00429 int F77_sgehrd( int* n, int* ilo, int* ihi, float*    a, int* lda, float*    tau, float*    work, int* lwork, int* info );
00430 int F77_dgehrd( int* n, int* ilo, int* ihi, double*   a, int* lda, double*   tau, double*   work, int* lwork, int* info );
00431 int F77_cgehrd( int* n, int* ilo, int* ihi, scomplex* a, int* lda, scomplex* tau, scomplex* work, int* lwork, int* info );
00432 int F77_zgehrd( int* n, int* ilo, int* ihi, dcomplex* a, int* lda, dcomplex* tau, dcomplex* work, int* lwork, int* info );
00433 
00434 int F77_sgehd2( int* n, int* ilo, int* ihi, float*    a, int* lda, float*    tau, float*    work, int* info );
00435 int F77_dgehd2( int* n, int* ilo, int* ihi, double*   a, int* lda, double*   tau, double*   work, int* info );
00436 int F77_cgehd2( int* n, int* ilo, int* ihi, scomplex* a, int* lda, scomplex* tau, scomplex* work, int* info );
00437 int F77_zgehd2( int* n, int* ilo, int* ihi, dcomplex* a, int* lda, dcomplex* tau, dcomplex* work, int* info );
00438 
00439 // --- Reduction to tridiagonal form ---
00440 
00441 int F77_ssytrd( char* uplo, int* n, float*    a, int* lda, float*  d, float*  e, float*    tau, float*    work, int* lwork, int* info );
00442 int F77_dsytrd( char* uplo, int* n, double*   a, int* lda, double* d, double* e, double*   tau, double*   work, int* lwork, int* info );
00443 int F77_chetrd( char* uplo, int* n, scomplex* a, int* lda, float*  d, float*  e, scomplex* tau, scomplex* work, int* lwork, int* info );
00444 int F77_zhetrd( char* uplo, int* n, dcomplex* a, int* lda, double* d, double* e, dcomplex* tau, dcomplex* work, int* lwork, int* info );
00445 
00446 int F77_ssytd2( char* uplo, int* n, float*    a, int* lda, float*  d, float*  e, float*    tau, int* info );
00447 int F77_dsytd2( char* uplo, int* n, double*   a, int* lda, double* d, double* e, double*   tau, int* info );
00448 int F77_chetd2( char* uplo, int* n, scomplex* a, int* lda, float*  d, float*  e, scomplex* tau, int* info );
00449 int F77_zhetd2( char* uplo, int* n, dcomplex* a, int* lda, double* d, double* e, dcomplex* tau, int* info );
00450 
00451 // --- Reduction to bidiagonal form ---
00452 
00453 int F77_sgebrd( int* m, int* n, float*    a, int* lda, float*  d, float*  e, float*    tauq, float*    taup, float*    work, int* lwork, int* info );
00454 int F77_dgebrd( int* m, int* n, double*   a, int* lda, double* d, double* e, double*   tauq, double*   taup, double*   work, int* lwork, int* info );
00455 int F77_cgebrd( int* m, int* n, scomplex* a, int* lda, float*  d, float*  e, scomplex* tauq, scomplex* taup, scomplex* work, int* lwork, int* info );
00456 int F77_zgebrd( int* m, int* n, dcomplex* a, int* lda, double* d, double* e, dcomplex* tauq, dcomplex* taup, dcomplex* work, int* lwork, int* info );
00457 
00458 int F77_sgebd2( int* m, int* n, float*    a, int* lda, float*  d, float*  e, float*    tauq, float*    taup, float*    work, int* info );
00459 int F77_dgebd2( int* m, int* n, double*   a, int* lda, double* d, double* e, double*   tauq, double*   taup, double*   work, int* info );
00460 int F77_cgebd2( int* m, int* n, scomplex* a, int* lda, float*  d, float*  e, scomplex* tauq, scomplex* taup, scomplex* work, int* info );
00461 int F77_zgebd2( int* m, int* n, dcomplex* a, int* lda, double* d, double* e, dcomplex* tauq, dcomplex* taup, dcomplex* work, int* info );
00462 
00463 // --- Reduce Hermitian-definite generalized eigenproblem to standard form ---
00464 
00465 int F77_ssygst( int* itype, char* uplo, int* n, float*    a, int* lda, float*    b, int* ldb, int* info );
00466 int F77_dsygst( int* itype, char* uplo, int* n, double*   a, int* lda, double*   b, int* ldb, int* info );
00467 int F77_chegst( int* itype, char* uplo, int* n, scomplex* a, int* lda, scomplex* b, int* ldb, int* info );
00468 int F77_zhegst( int* itype, char* uplo, int* n, dcomplex* a, int* lda, dcomplex* b, int* ldb, int* info );
00469 
00470 int F77_ssygs2( int* itype, char* uplo, int* n, float*    a, int* lda, float*    b, int* ldb, int* info );
00471 int F77_dsygs2( int* itype, char* uplo, int* n, double*   a, int* lda, double*   b, int* ldb, int* info );
00472 int F77_chegs2( int* itype, char* uplo, int* n, scomplex* a, int* lda, scomplex* b, int* ldb, int* info );
00473 int F77_zhegs2( int* itype, char* uplo, int* n, dcomplex* a, int* lda, dcomplex* b, int* ldb, int* info );
00474 
00475 // --- Accumulate block Householder matrix T (classic) ---
00476 
00477 int F77_slarft( char* direct, char* storev, int* n, int* k, float*    v, int* ldv, float*    tau, float*    t, int* ldt );
00478 int F77_dlarft( char* direct, char* storev, int* n, int* k, double*   v, int* ldv, double*   tau, double*   t, int* ldt );
00479 int F77_clarft( char* direct, char* storev, int* n, int* k, scomplex* v, int* ldv, scomplex* tau, scomplex* t, int* ldt );
00480 int F77_zlarft( char* direct, char* storev, int* n, int* k, dcomplex* v, int* ldv, dcomplex* tau, dcomplex* t, int* ldt );
00481 
00482 // --- Generate a Householder vector (classic) ---
00483 
00484 int F77_slarfg( int* n, float*    alpha, float*    x, int* incx, float*    tau );
00485 int F77_dlarfg( int* n, double*   alpha, double*   x, int* incx, double*   tau );
00486 int F77_clarfg( int* n, scomplex* alpha, scomplex* x, int* incx, scomplex* tau );
00487 int F77_zlarfg( int* n, dcomplex* alpha, dcomplex* x, int* incx, dcomplex* tau );
00488 
00489 int F77_slarfgp( int* n, float*    alpha, float*    x, int* incx, float*    tau );
00490 int F77_dlarfgp( int* n, double*   alpha, double*   x, int* incx, double*   tau );
00491 int F77_clarfgp( int* n, scomplex* alpha, scomplex* x, int* incx, scomplex* tau );
00492 int F77_zlarfgp( int* n, dcomplex* alpha, dcomplex* x, int* incx, dcomplex* tau );
00493 
00494 // --- Form Q from QR factorization ---
00495 
00496 int F77_sorgqr( int* m, int* n, int* k, float*    a, int* lda, float*    tau, float*    work, int* lwork, int* info );
00497 int F77_dorgqr( int* m, int* n, int* k, double*   a, int* lda, double*   tau, double*   work, int* lwork, int* info );
00498 int F77_cungqr( int* m, int* n, int* k, scomplex*   a, int* lda, scomplex*   tau, scomplex*   work, int* lwork, int* info );
00499 int F77_zungqr( int* m, int* n, int* k, dcomplex*   a, int* lda, dcomplex*   tau, dcomplex*   work, int* lwork, int* info );
00500 
00501 // --- Apply Q or Q' from QR factorization ---
00502 
00503 int F77_sormqr( char* side, char* trans, int* m, int* n, int* k, float*    a, int* lda, float*    tau, float*    c, int* ldc, float*    work, int* lwork, int* info );
00504 int F77_dormqr( char* side, char* trans, int* m, int* n, int* k, double*   a, int* lda, double*   tau, double*   c, int* ldc, double*   work, int* lwork, int* info );
00505 int F77_cunmqr( char* side, char* trans, int* m, int* n, int* k, scomplex*   a, int* lda, scomplex*   tau, scomplex*   c, int* ldc, scomplex*   work, int* lwork, int* info );
00506 int F77_zunmqr( char* side, char* trans, int* m, int* n, int* k, dcomplex*   a, int* lda, dcomplex*   tau, dcomplex*   c, int* ldc, dcomplex*   work, int* lwork, int* info );
00507 
00508 int F77_sorm2r( char* side, char* trans, int* m, int* n, int* k, float*    a, int* lda, float*    tau, float*    c, int* ldc, float*    work, int* info );
00509 int F77_dorm2r( char* side, char* trans, int* m, int* n, int* k, double*   a, int* lda, double*   tau, double*   c, int* ldc, double*   work, int* info );
00510 int F77_cunm2r( char* side, char* trans, int* m, int* n, int* k, scomplex*   a, int* lda, scomplex*   tau, scomplex*   c, int* ldc, scomplex*   work, int* info );
00511 int F77_zunm2r( char* side, char* trans, int* m, int* n, int* k, dcomplex*   a, int* lda, dcomplex*   tau, dcomplex*   c, int* ldc, dcomplex*   work, int* info );
00512 
00513 // --- Form Q from LQ factorization ---
00514 
00515 int F77_sorglq( int* m, int* n, int* k, float*    a, int* lda, float*    tau, float*    work, int* lwork, int* info );
00516 int F77_dorglq( int* m, int* n, int* k, double*   a, int* lda, double*   tau, double*   work, int* lwork, int* info );
00517 int F77_cunglq( int* m, int* n, int* k, scomplex* a, int* lda, scomplex* tau, scomplex* work, int* lwork, int* info );
00518 int F77_zunglq( int* m, int* n, int* k, dcomplex* a, int* lda, dcomplex* tau, dcomplex* work, int* lwork, int* info );
00519 
00520 // --- Apply Q or Q' from LQ factorization ---
00521 
00522 int F77_sormlq( char* side, char* trans, int* m, int* n, int* k, float*    a, int* lda, float*    tau, float*    c, int* ldc, float*    work, int* lwork, int* info );
00523 int F77_dormlq( char* side, char* trans, int* m, int* n, int* k, double*   a, int* lda, double*   tau, double*   c, int* ldc, double*   work, int* lwork, int* info );
00524 int F77_cunmlq( char* side, char* trans, int* m, int* n, int* k, scomplex*   a, int* lda, scomplex*   tau, scomplex*   c, int* ldc, scomplex*   work, int* lwork, int* info );
00525 int F77_zunmlq( char* side, char* trans, int* m, int* n, int* k, dcomplex*   a, int* lda, dcomplex*   tau, dcomplex*   c, int* ldc, dcomplex*   work, int* lwork, int* info );
00526 
00527 int F77_sorml2( char* side, char* trans, int* m, int* n, int* k, float*    a, int* lda, float*    tau, float*    c, int* ldc, float*    work, int* info );
00528 int F77_dorml2( char* side, char* trans, int* m, int* n, int* k, double*   a, int* lda, double*   tau, double*   c, int* ldc, double*   work, int* info );
00529 int F77_cunml2( char* side, char* trans, int* m, int* n, int* k, scomplex*   a, int* lda, scomplex*   tau, scomplex*   c, int* ldc, scomplex*   work, int* info );
00530 int F77_zunml2( char* side, char* trans, int* m, int* n, int* k, dcomplex*   a, int* lda, dcomplex*   tau, dcomplex*   c, int* ldc, dcomplex*   work, int* info );
00531 
00532 // --- Form Q from tridiagonal reduction ---
00533 
00534 int F77_sorgtr( char* uplo, int* m, float*    a, int* lda, float*    tau, float*    work, int* lwork, int* info );
00535 int F77_dorgtr( char* uplo, int* m, double*   a, int* lda, double*   tau, double*   work, int* lwork, int* info );
00536 int F77_cungtr( char* uplo, int* m, scomplex* a, int* lda, scomplex* tau, scomplex* work, int* lwork, int* info );
00537 int F77_zungtr( char* uplo, int* m, dcomplex* a, int* lda, dcomplex* tau, dcomplex* work, int* lwork, int* info );
00538 
00539 // --- Apply Q or Q' from tridiagonal reduction ---
00540 
00541 int F77_sormtr( char* side, char* uplo, char* trans, int* m, int* n, float*    a, int* lda, float*    tau, float*    c, int* ldc, float*    work, int* lwork, int* info );
00542 int F77_dormtr( char* side, char* uplo, char* trans, int* m, int* n, double*   a, int* lda, double*   tau, double*   c, int* ldc, double*   work, int* lwork, int* info );
00543 int F77_cunmtr( char* side, char* uplo, char* trans, int* m, int* n, scomplex* a, int* lda, scomplex* tau, scomplex* c, int* ldc, scomplex* work, int* lwork, int* info );
00544 int F77_zunmtr( char* side, char* uplo, char* trans, int* m, int* n, dcomplex* a, int* lda, dcomplex* tau, dcomplex* c, int* ldc, dcomplex* work, int* lwork, int* info );
00545 
00546 // --- Form Q from bidiagonal reduction ---
00547 
00548 int F77_sorgbr( char* vect, int* m, int* n, int* k, float*    a, int* lda, float*    tau, float*    work, int* lwork, int* info );
00549 int F77_dorgbr( char* vect, int* m, int* n, int* k, double*   a, int* lda, double*   tau, double*   work, int* lwork, int* info );
00550 int F77_cungbr( char* vect, int* m, int* n, int* k, scomplex* a, int* lda, scomplex* tau, scomplex* work, int* lwork, int* info );
00551 int F77_zungbr( char* vect, int* m, int* n, int* k, dcomplex* a, int* lda, dcomplex* tau, dcomplex* work, int* lwork, int* info );
00552 
00553 // --- Apply Q or Q' from bidiagonal reduction ---
00554 
00555 int F77_sormbr( char* vect, char* side, char* trans, int* m, int* n, int* k, float*    a, int* lda, float*    tau, float*    c, int* ldc, float*    work, int* lwork, int* info );
00556 int F77_dormbr( char* vect, char* side, char* trans, int* m, int* n, int* k, double*   a, int* lda, double*   tau, double*   c, int* ldc, double*   work, int* lwork, int* info );
00557 int F77_cunmbr( char* vect, char* side, char* trans, int* m, int* n, int* k, scomplex* a, int* lda, scomplex* tau, scomplex* c, int* ldc, scomplex* work, int* lwork, int* info );
00558 int F77_zunmbr( char* vect, char* side, char* trans, int* m, int* n, int* k, dcomplex* a, int* lda, dcomplex* tau, dcomplex* c, int* ldc, dcomplex* work, int* lwork, int* info );
00559 
00560 // --- Tridiagonal QR algorithm ---
00561 
00562 int F77_ssteqr( char* jobz, int* n, float*    d, float*    e, float*    z, int* ldz, float*  work, int* info ); 
00563 int F77_dsteqr( char* jobz, int* n, double*   d, double*   e, double*   z, int* ldz, double* work, int* info ); 
00564 int F77_csteqr( char* jobz, int* n, float*    d, float*    e, scomplex* z, int* ldz, float*  work, int* info ); 
00565 int F77_zsteqr( char* jobz, int* n, double*   d, double*   e, dcomplex* z, int* ldz, double* work, int* info ); 
00566 
00567 // --- Tridiagonal divide-and-conquer algorithm ---
00568 
00569 int F77_sstedc( char* compz, int* n, float*    d, float*    e, float*    z, int* ldz, float*    work, int* lwork,                             int* iwork, int* liwork, int* info );
00570 int F77_dstedc( char* compz, int* n, double*   d, double*   e, double*   z, int* ldz, double*   work, int* lwork,                             int* iwork, int* liwork, int* info );
00571 int F77_cstedc( char* compz, int* n, float*    d, float*    e, scomplex* z, int* ldz, scomplex* work, int* lwork, float*  rwork, int* lrwork, int* iwork, int* liwork, int* info );
00572 int F77_zstedc( char* compz, int* n, double*   d, double*   e, dcomplex* z, int* ldz, dcomplex* work, int* lwork, double* rwork, int* lrwork, int* iwork, int* liwork, int* info );
00573 
00574 // --- Tridiagonal MRRR algorithm ---
00575 
00576 int F77_sstemr( char* jobz, char* range, int* n, float*  d, float*  e, int* vl, int* vu, int* il, int* iu, int* m, float*  w, float*    z, int* ldz, int* nzc, int* isuppz, int* tryrac, float*  work, int* lwork, int* iwork, int* liwork, int* info );
00577 int F77_dstemr( char* jobz, char* range, int* n, double* d, double* e, int* vl, int* vu, int* il, int* iu, int* m, double* w, double*   z, int* ldz, int* nzc, int* isuppz, int* tryrac, double* work, int* lwork, int* iwork, int* liwork, int* info );
00578 int F77_cstemr( char* jobz, char* range, int* n, float*  d, float*  e, int* vl, int* vu, int* il, int* iu, int* m, float*  w, scomplex* z, int* ldz, int* nzc, int* isuppz, int* tryrac, float*  work, int* lwork, int* iwork, int* liwork, int* info );
00579 int F77_zstemr( char* jobz, char* range, int* n, double* d, double* e, int* vl, int* vu, int* il, int* iu, int* m, double* w, dcomplex* z, int* ldz, int* nzc, int* isuppz, int* tryrac, double* work, int* lwork, int* iwork, int* liwork, int* info );
00580 
00581 // --- Hermitian eigenvalue decomposition (QR algorithm) ---
00582 
00583 int F77_ssyev( char* jobz, char* uplo, int* n, float*    a, int* lda, float*  w, float*    work, int* lwork, float*  rwork, int* info ); 
00584 int F77_dsyev( char* jobz, char* uplo, int* n, double*   a, int* lda, double* w, double*   work, int* lwork, double* rwork, int* info ); 
00585 int F77_cheev( char* jobz, char* uplo, int* n, scomplex* a, int* lda, float*  w, scomplex* work, int* lwork, float*  rwork, int* info ); 
00586 int F77_zheev( char* jobz, char* uplo, int* n, dcomplex* a, int* lda, double* w, dcomplex* work, int* lwork, double* rwork, int* info ); 
00587 
00588 // --- Hermitian eigenvalue decomposition (divide-and-conquer) ---
00589 
00590 int F77_ssyevd( char* jobz, char* uplo, int* n, float*    a, int* lda, float*  w, float*    work, int* lwork,                             int* iwork, int* liwork, int* info ); 
00591 int F77_dsyevd( char* jobz, char* uplo, int* n, double*   a, int* lda, double* w, double*   work, int* lwork,                             int* iwork, int* liwork, int* info ); 
00592 int F77_cheevd( char* jobz, char* uplo, int* n, scomplex* a, int* lda, float*  w, scomplex* work, int* lwork, float*  rwork, int* lrwork, int* iwork, int* liwork, int* info ); 
00593 int F77_zheevd( char* jobz, char* uplo, int* n, dcomplex* a, int* lda, double* w, dcomplex* work, int* lwork, double* rwork, int* lrwork, int* iwork, int* liwork, int* info ); 
00594 
00595 // --- Hermitian eigenvalue decomposition (MRRR) ---
00596 
00597 int F77_ssyevr( char* jobz, char* range, char* uplo, int* n, float*    a, int* lda, float*  vl, float*  vu, int* il, int* iu, float*  abstol, int* m, float*  w, float*    z, int* ldz, int* isuppz, float*    work, int* lwork,                             int* iwork, int* liwork, int* info ); 
00598 int F77_dsyevr( char* jobz, char* range, char* uplo, int* n, double*   a, int* lda, double* vl, double* vu, int* il, int* iu, double* abstol, int* m, double* w, double*   z, int* ldz, int* isuppz, double*   work, int* lwork,                             int* iwork, int* liwork, int* info ); 
00599 int F77_cheevr( char* jobz, char* range, char* uplo, int* n, scomplex* a, int* lda, float*  vl, float*  vu, int* il, int* iu, float*  abstol, int* m, float*  w, scomplex* z, int* ldz, int* isuppz, scomplex* work, int* lwork, float*  rwork, int* lrwork, int* iwork, int* liwork, int* info ); 
00600 int F77_zheevr( char* jobz, char* range, char* uplo, int* n, dcomplex* a, int* lda, double* vl, double* vu, int* il, int* iu, double* abstol, int* m, double* w, dcomplex* z, int* ldz, int* isuppz, dcomplex* work, int* lwork, double* rwork, int* lrwork, int* iwork, int* liwork, int* info ); 
00601 
00602 // --- Bidiagonal QR algorithm ---
00603 
00604 int F77_sbdsqr( char* uplo, int* n, int* ncvt, int* nru, int* ncc, float*    d, float*    e, float*    vt, int* ldvt, float*    u, int* ldu, float*    c, int* ldc, float*  rwork, int* info ); 
00605 int F77_dbdsqr( char* uplo, int* n, int* ncvt, int* nru, int* ncc, double*   d, double*   e, double*   vt, int* ldvt, double*   u, int* ldu, double*   c, int* ldc, double* rwork, int* info ); 
00606 int F77_cbdsqr( char* uplo, int* n, int* ncvt, int* nru, int* ncc, float*    d, float*    e, scomplex* vt, int* ldvt, scomplex* u, int* ldu, scomplex* c, int* ldc, float*  rwork, int* info ); 
00607 int F77_zbdsqr( char* uplo, int* n, int* ncvt, int* nru, int* ncc, double*   d, double*   e, dcomplex* vt, int* ldvt, dcomplex* u, int* ldu, dcomplex* c, int* ldc, double* rwork, int* info ); 
00608 
00609 // --- Bidiagonal divide-and-conquor algorithm ---
00610 
00611 int F77_sbdsdc( char* uplo, char* compq, int* n, float*  d, float*  e, float*  u, int* ldu, float*  vt, int* ldvt, float*  q, float*  iq, float*  work, int* iwork, int* info ); 
00612 int F77_dbdsdc( char* uplo, char* compq, int* n, double* d, double* e, double* u, int* ldu, double* vt, int* ldvt, double* q, double* iq, double* work, int* iwork, int* info ); 
00613 
00614 // --- General matrix singular value decomposition (QR algorithm) ---
00615 
00616 int F77_sgesvd( char* jobu, char* jobv, int* m, int* n, float*    a, int* lda, float*  s, float*    u, int* ldu, float*    vt, int* ldvt, float*    work, int* lwork,                int* info );
00617 int F77_dgesvd( char* jobu, char* jobv, int* m, int* n, double*   a, int* lda, double* s, double*   u, int* ldu, double*   vt, int* ldvt, double*   work, int* lwork,                int* info );
00618 int F77_cgesvd( char* jobu, char* jobv, int* m, int* n, scomplex* a, int* lda, float*  s, scomplex* u, int* ldu, scomplex* vt, int* ldvt, scomplex* work, int* lwork, float*  rwork, int* info );
00619 int F77_zgesvd( char* jobu, char* jobv, int* m, int* n, dcomplex* a, int* lda, double* s, dcomplex* u, int* ldu, dcomplex* vt, int* ldvt, dcomplex* work, int* lwork, double* rwork, int* info );
00620 
00621 // --- General matrix singular value decomposition (divide-and-conquer) ---
00622 
00623 int F77_sgesdd( char* jobz, int* m, int* n, float*    a, int* lda, float*  s, float*    u, int* ldu, float*    vt, int* ldvt, float*    work, int* lwork,                int* iwork, int* info );
00624 int F77_dgesdd( char* jobz, int* m, int* n, double*   a, int* lda, double* s, double*   u, int* ldu, double*   vt, int* ldvt, double*   work, int* lwork,                int* iwork, int* info );
00625 int F77_cgesdd( char* jobz, int* m, int* n, scomplex* a, int* lda, float*  s, scomplex* u, int* ldu, scomplex* vt, int* ldvt, scomplex* work, int* lwork, float*  rwork, int* iwork, int* info );
00626 int F77_zgesdd( char* jobz, int* m, int* n, dcomplex* a, int* lda, double* s, dcomplex* u, int* ldu, dcomplex* vt, int* ldvt, dcomplex* work, int* lwork, double* rwork, int* iwork, int* info );
00627 
00628 // --- Swap rows ---
00629 
00630 int F77_slaswp( int* n, float*    a, int* lda, int* k1, int* k2, int* ipiv, int* incx );
00631 int F77_dlaswp( int* n, double*   a, int* lda, int* k1, int* k2, int* ipiv, int* incx );
00632 int F77_claswp( int* n, scomplex* a, int* lda, int* k1, int* k2, int* ipiv, int* incx );
00633 int F77_zlaswp( int* n, dcomplex* a, int* lda, int* k1, int* k2, int* ipiv, int* incx );
00634 
00635 // --- Initialize a matrix ---
00636 
00637 int F77_slaset( char* uplo, int* m, int* n, float*    alpha, float*    beta, float*    a, int* lda );
00638 int F77_dlaset( char* uplo, int* m, int* n, double*   alpha, double*   beta, double*   a, int* lda );
00639 int F77_claset( char* uplo, int* m, int* n, scomplex* alpha, scomplex* beta, scomplex* a, int* lda );
00640 int F77_zlaset( char* uplo, int* m, int* n, dcomplex* alpha, dcomplex* beta, dcomplex* a, int* lda );
00641