libflame
revision_anchor
|
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