Fix C function signatures in LAPACKE headers and f2c-generated LAPACK C filestags/v0.3.22^2
@@ -17,7 +17,9 @@ | |||
/* It seems all current Fortran compilers put strlen at end. | |||
* Some historical compilers put strlen after the str argument | |||
* or make the str argument into a struct. */ | |||
#ifndef __EMSCRIPTEN__ | |||
#define LAPACK_FORTRAN_STRLEN_END | |||
#endif | |||
/* Complex types are structures equivalent to the | |||
* Fortran complex types COMPLEX(4) and COMPLEX(8). | |||
@@ -131,8 +133,10 @@ typedef lapack_logical (*LAPACK_Z_SELECT2) | |||
( const lapack_complex_double*, const lapack_complex_double* ); | |||
#define LAPACK_lsame_base LAPACK_GLOBAL(lsame,LSAME) | |||
lapack_logical LAPACK_lsame_base( const char* ca, const char* cb, | |||
lapack_int lca, lapack_int lcb | |||
lapack_logical LAPACK_lsame_base( const char* ca, const char* cb | |||
#ifndef __EMSCRIPTEN__ | |||
, lapack_int lca, lapack_int lcb | |||
#endif | |||
#ifdef LAPACK_FORTRAN_STRLEN_END | |||
, size_t, size_t | |||
#endif | |||
@@ -3320,28 +3324,28 @@ void LAPACK_zgesdd_base( | |||
#endif | |||
#define LAPACK_cgesv LAPACK_GLOBAL(cgesv,CGESV) | |||
void LAPACK_cgesv( | |||
lapack_int LAPACK_cgesv( | |||
lapack_int const* n, lapack_int const* nrhs, | |||
lapack_complex_float* A, lapack_int const* lda, lapack_int* ipiv, | |||
lapack_complex_float* B, lapack_int const* ldb, | |||
lapack_int* info ); | |||
#define LAPACK_dgesv LAPACK_GLOBAL(dgesv,DGESV) | |||
void LAPACK_dgesv( | |||
lapack_int LAPACK_dgesv( | |||
lapack_int const* n, lapack_int const* nrhs, | |||
double* A, lapack_int const* lda, lapack_int* ipiv, | |||
double* B, lapack_int const* ldb, | |||
lapack_int* info ); | |||
#define LAPACK_sgesv LAPACK_GLOBAL(sgesv,SGESV) | |||
void LAPACK_sgesv( | |||
lapack_int LAPACK_sgesv( | |||
lapack_int const* n, lapack_int const* nrhs, | |||
float* A, lapack_int const* lda, lapack_int* ipiv, | |||
float* B, lapack_int const* ldb, | |||
lapack_int* info ); | |||
#define LAPACK_zgesv LAPACK_GLOBAL(zgesv,ZGESV) | |||
void LAPACK_zgesv( | |||
lapack_int LAPACK_zgesv( | |||
lapack_int const* n, lapack_int const* nrhs, | |||
lapack_complex_double* A, lapack_int const* lda, lapack_int* ipiv, | |||
lapack_complex_double* B, lapack_int const* ldb, | |||
@@ -3940,49 +3944,49 @@ void LAPACK_zgesvxx_base( | |||
#endif | |||
#define LAPACK_cgetf2 LAPACK_GLOBAL(cgetf2,CGETF2) | |||
void LAPACK_cgetf2( | |||
lapack_int LAPACK_cgetf2( | |||
lapack_int const* m, lapack_int const* n, | |||
lapack_complex_float* A, lapack_int const* lda, lapack_int* ipiv, | |||
lapack_int* info ); | |||
#define LAPACK_dgetf2 LAPACK_GLOBAL(dgetf2,DGETF2) | |||
void LAPACK_dgetf2( | |||
lapack_int LAPACK_dgetf2( | |||
lapack_int const* m, lapack_int const* n, | |||
double* A, lapack_int const* lda, lapack_int* ipiv, | |||
lapack_int* info ); | |||
#define LAPACK_sgetf2 LAPACK_GLOBAL(sgetf2,SGETF2) | |||
void LAPACK_sgetf2( | |||
lapack_int LAPACK_sgetf2( | |||
lapack_int const* m, lapack_int const* n, | |||
float* A, lapack_int const* lda, lapack_int* ipiv, | |||
lapack_int* info ); | |||
#define LAPACK_zgetf2 LAPACK_GLOBAL(zgetf2,ZGETF2) | |||
void LAPACK_zgetf2( | |||
lapack_int LAPACK_zgetf2( | |||
lapack_int const* m, lapack_int const* n, | |||
lapack_complex_double* A, lapack_int const* lda, lapack_int* ipiv, | |||
lapack_int* info ); | |||
#define LAPACK_cgetrf LAPACK_GLOBAL(cgetrf,CGETRF) | |||
void LAPACK_cgetrf( | |||
lapack_int LAPACK_cgetrf( | |||
lapack_int const* m, lapack_int const* n, | |||
lapack_complex_float* A, lapack_int const* lda, lapack_int* ipiv, | |||
lapack_int* info ); | |||
#define LAPACK_dgetrf LAPACK_GLOBAL(dgetrf,DGETRF) | |||
void LAPACK_dgetrf( | |||
lapack_int LAPACK_dgetrf( | |||
lapack_int const* m, lapack_int const* n, | |||
double* A, lapack_int const* lda, lapack_int* ipiv, | |||
lapack_int* info ); | |||
#define LAPACK_sgetrf LAPACK_GLOBAL(sgetrf,SGETRF) | |||
void LAPACK_sgetrf( | |||
lapack_int LAPACK_sgetrf( | |||
lapack_int const* m, lapack_int const* n, | |||
float* A, lapack_int const* lda, lapack_int* ipiv, | |||
lapack_int* info ); | |||
#define LAPACK_zgetrf LAPACK_GLOBAL(zgetrf,ZGETRF) | |||
void LAPACK_zgetrf( | |||
lapack_int LAPACK_zgetrf( | |||
lapack_int const* m, lapack_int const* n, | |||
lapack_complex_double* A, lapack_int const* lda, lapack_int* ipiv, | |||
lapack_int* info ); | |||
@@ -4040,7 +4044,7 @@ void LAPACK_zgetri( | |||
lapack_int* info ); | |||
#define LAPACK_cgetrs_base LAPACK_GLOBAL(cgetrs,CGETRS) | |||
void LAPACK_cgetrs_base( | |||
lapack_int LAPACK_cgetrs_base( | |||
char const* trans, | |||
lapack_int const* n, lapack_int const* nrhs, | |||
lapack_complex_float const* A, lapack_int const* lda, lapack_int const* ipiv, | |||
@@ -4057,7 +4061,7 @@ void LAPACK_cgetrs_base( | |||
#endif | |||
#define LAPACK_dgetrs_base LAPACK_GLOBAL(dgetrs,DGETRS) | |||
void LAPACK_dgetrs_base( | |||
lapack_int LAPACK_dgetrs_base( | |||
char const* trans, | |||
lapack_int const* n, lapack_int const* nrhs, | |||
double const* A, lapack_int const* lda, lapack_int const* ipiv, | |||
@@ -4074,7 +4078,7 @@ void LAPACK_dgetrs_base( | |||
#endif | |||
#define LAPACK_sgetrs_base LAPACK_GLOBAL(sgetrs,SGETRS) | |||
void LAPACK_sgetrs_base( | |||
lapack_int LAPACK_sgetrs_base( | |||
char const* trans, | |||
lapack_int const* n, lapack_int const* nrhs, | |||
float const* A, lapack_int const* lda, lapack_int const* ipiv, | |||
@@ -4091,7 +4095,7 @@ void LAPACK_sgetrs_base( | |||
#endif | |||
#define LAPACK_zgetrs_base LAPACK_GLOBAL(zgetrs,ZGETRS) | |||
void LAPACK_zgetrs_base( | |||
lapack_int LAPACK_zgetrs_base( | |||
char const* trans, | |||
lapack_int const* n, lapack_int const* nrhs, | |||
lapack_complex_double const* A, lapack_int const* lda, lapack_int const* ipiv, | |||
@@ -5284,7 +5288,7 @@ void LAPACK_zggrqf( | |||
lapack_int* info ); | |||
#define LAPACK_cggsvd_base LAPACK_GLOBAL(cggsvd,CGGSVD) | |||
lapack_int LAPACK_cggsvd_base( | |||
void LAPACK_cggsvd_base( | |||
char const* jobu, char const* jobv, char const* jobq, | |||
lapack_int const* m, lapack_int const* n, lapack_int const* p, | |||
lapack_int* k, lapack_int* l, | |||
@@ -5307,7 +5311,7 @@ lapack_int LAPACK_cggsvd_base( | |||
#endif | |||
#define LAPACK_sggsvd_base LAPACK_GLOBAL(sggsvd,SGGSVD) | |||
lapack_int LAPACK_sggsvd_base( | |||
void LAPACK_sggsvd_base( | |||
char const* jobu, char const* jobv, char const* jobq, | |||
lapack_int const* m, lapack_int const* n, lapack_int const* p, | |||
lapack_int* k, lapack_int* l, | |||
@@ -5329,7 +5333,7 @@ lapack_int LAPACK_sggsvd_base( | |||
#endif | |||
#define LAPACK_dggsvd_base LAPACK_GLOBAL(dggsvd,DGGSVD) | |||
lapack_int LAPACK_dggsvd_base( | |||
void LAPACK_dggsvd_base( | |||
char const* jobu, char const* jobv, char const* jobq, | |||
lapack_int const* m, lapack_int const* n, lapack_int const* p, | |||
lapack_int* k, lapack_int* l, | |||
@@ -5351,7 +5355,7 @@ lapack_int LAPACK_dggsvd_base( | |||
#endif | |||
#define LAPACK_zggsvd_base LAPACK_GLOBAL(zggsvd,ZGGSVD) | |||
lapack_int LAPACK_zggsvd_base( | |||
void LAPACK_zggsvd_base( | |||
char const* jobu, char const* jobv, char const* jobq, | |||
lapack_int const* m, lapack_int const* n, lapack_int const* p, | |||
lapack_int* k, lapack_int* l, | |||
@@ -5472,7 +5476,7 @@ void LAPACK_zggsvd3_base( | |||
#endif | |||
#define LAPACK_sggsvp_base LAPACK_GLOBAL(sggsvp,SGGSVP) | |||
lapack_int LAPACK_sggsvp_base( | |||
void LAPACK_sggsvp_base( | |||
char const* jobu, char const* jobv, char const* jobq, | |||
lapack_int const* m, lapack_int const* p, lapack_int const* n, | |||
float* a, lapack_int const* lda, | |||
@@ -5495,7 +5499,7 @@ lapack_int LAPACK_sggsvp_base( | |||
#endif | |||
#define LAPACK_dggsvp_base LAPACK_GLOBAL(dggsvp,DGGSVP) | |||
lapack_int LAPACK_dggsvp_base( | |||
void LAPACK_dggsvp_base( | |||
char const* jobu, char const* jobv, char const* jobq, | |||
lapack_int const* m, lapack_int const* p, lapack_int const* n, | |||
double* a, lapack_int const* lda, | |||
@@ -5518,7 +5522,7 @@ lapack_int LAPACK_dggsvp_base( | |||
#endif | |||
#define LAPACK_cggsvp_base LAPACK_GLOBAL(cggsvp,CGGSVP) | |||
lapack_int LAPACK_cggsvp_base( | |||
void LAPACK_cggsvp_base( | |||
char const* jobu, char const* jobv, char const* jobq, | |||
lapack_int const* m, lapack_int const* p, lapack_int const* n, | |||
lapack_complex_float* a, lapack_int const* lda, | |||
@@ -5540,7 +5544,7 @@ lapack_int LAPACK_cggsvp_base( | |||
#endif | |||
#define LAPACK_zggsvp_base LAPACK_GLOBAL(zggsvp,ZGGSVP) | |||
lapack_int LAPACK_zggsvp_base( | |||
void LAPACK_zggsvp_base( | |||
char const* jobu, char const* jobv, char const* jobq, | |||
lapack_int const* m, lapack_int const* p, lapack_int const* n, | |||
lapack_complex_double* a, lapack_int const* lda, | |||
@@ -10942,22 +10946,22 @@ void LAPACK_zlassq( | |||
double* sumsq ); | |||
#define LAPACK_claswp LAPACK_GLOBAL(claswp,CLASWP) | |||
void LAPACK_claswp( | |||
lapack_int LAPACK_claswp( | |||
lapack_int const* n, | |||
lapack_complex_float* A, lapack_int const* lda, lapack_int const* k1, lapack_int const* k2, lapack_int const* ipiv, lapack_int const* incx ); | |||
#define LAPACK_dlaswp LAPACK_GLOBAL(dlaswp,DLASWP) | |||
void LAPACK_dlaswp( | |||
lapack_int LAPACK_dlaswp( | |||
lapack_int const* n, | |||
double* A, lapack_int const* lda, lapack_int const* k1, lapack_int const* k2, lapack_int const* ipiv, lapack_int const* incx ); | |||
#define LAPACK_slaswp LAPACK_GLOBAL(slaswp,SLASWP) | |||
void LAPACK_slaswp( | |||
lapack_int LAPACK_slaswp( | |||
lapack_int const* n, | |||
float* A, lapack_int const* lda, lapack_int const* k1, lapack_int const* k2, lapack_int const* ipiv, lapack_int const* incx ); | |||
#define LAPACK_zlaswp LAPACK_GLOBAL(zlaswp,ZLASWP) | |||
void LAPACK_zlaswp( | |||
lapack_int LAPACK_zlaswp( | |||
lapack_int const* n, | |||
lapack_complex_double* A, lapack_int const* lda, lapack_int const* k1, lapack_int const* k2, lapack_int const* ipiv, lapack_int const* incx ); | |||
@@ -11050,7 +11054,7 @@ void LAPACK_zlatms_base( | |||
#endif | |||
#define LAPACK_clauum_base LAPACK_GLOBAL(clauum,CLAUUM) | |||
void LAPACK_clauum_base( | |||
lapack_int LAPACK_clauum_base( | |||
char const* uplo, | |||
lapack_int const* n, | |||
lapack_complex_float* A, lapack_int const* lda, | |||
@@ -11066,7 +11070,7 @@ void LAPACK_clauum_base( | |||
#endif | |||
#define LAPACK_dlauum_base LAPACK_GLOBAL(dlauum,DLAUUM) | |||
void LAPACK_dlauum_base( | |||
lapack_int LAPACK_dlauum_base( | |||
char const* uplo, | |||
lapack_int const* n, | |||
double* A, lapack_int const* lda, | |||
@@ -11082,7 +11086,7 @@ void LAPACK_dlauum_base( | |||
#endif | |||
#define LAPACK_slauum_base LAPACK_GLOBAL(slauum,SLAUUM) | |||
void LAPACK_slauum_base( | |||
lapack_int LAPACK_slauum_base( | |||
char const* uplo, | |||
lapack_int const* n, | |||
float* A, lapack_int const* lda, | |||
@@ -11098,7 +11102,7 @@ void LAPACK_slauum_base( | |||
#endif | |||
#define LAPACK_zlauum_base LAPACK_GLOBAL(zlauum,ZLAUUM) | |||
void LAPACK_zlauum_base( | |||
lapack_int LAPACK_zlauum_base( | |||
char const* uplo, | |||
lapack_int const* n, | |||
lapack_complex_double* A, lapack_int const* lda, | |||
@@ -11114,7 +11118,7 @@ void LAPACK_zlauum_base( | |||
#endif | |||
#define LAPACK_ilaver LAPACK_GLOBAL(ilaver,ILAVER) | |||
void LAPACK_ilaver( | |||
lapack_int LAPACK_ilaver( | |||
lapack_int* vers_major, lapack_int* vers_minor, lapack_int* vers_patch ); | |||
#define LAPACK_dopgtr_base LAPACK_GLOBAL(dopgtr,DOPGTR) | |||
@@ -13375,7 +13379,7 @@ void LAPACK_zpotf2_base( | |||
#endif | |||
#define LAPACK_cpotrf_base LAPACK_GLOBAL(cpotrf,CPOTRF) | |||
void LAPACK_cpotrf_base( | |||
lapack_int LAPACK_cpotrf_base( | |||
char const* uplo, | |||
lapack_int const* n, | |||
lapack_complex_float* A, lapack_int const* lda, | |||
@@ -13391,7 +13395,7 @@ void LAPACK_cpotrf_base( | |||
#endif | |||
#define LAPACK_dpotrf_base LAPACK_GLOBAL(dpotrf,DPOTRF) | |||
void LAPACK_dpotrf_base( | |||
lapack_int LAPACK_dpotrf_base( | |||
char const* uplo, | |||
lapack_int const* n, | |||
double* A, lapack_int const* lda, | |||
@@ -13407,7 +13411,7 @@ void LAPACK_dpotrf_base( | |||
#endif | |||
#define LAPACK_spotrf_base LAPACK_GLOBAL(spotrf,SPOTRF) | |||
void LAPACK_spotrf_base( | |||
lapack_int LAPACK_spotrf_base( | |||
char const* uplo, | |||
lapack_int const* n, | |||
float* A, lapack_int const* lda, | |||
@@ -13423,7 +13427,7 @@ void LAPACK_spotrf_base( | |||
#endif | |||
#define LAPACK_zpotrf_base LAPACK_GLOBAL(zpotrf,ZPOTRF) | |||
void LAPACK_zpotrf_base( | |||
lapack_int LAPACK_zpotrf_base( | |||
char const* uplo, | |||
lapack_int const* n, | |||
lapack_complex_double* A, lapack_int const* lda, | |||
@@ -22081,7 +22085,7 @@ void LAPACK_ztrsyl3_base( | |||
#endif | |||
#define LAPACK_ctrtri_base LAPACK_GLOBAL(ctrtri,CTRTRI) | |||
void LAPACK_ctrtri_base( | |||
lapack_int LAPACK_ctrtri_base( | |||
char const* uplo, char const* diag, | |||
lapack_int const* n, | |||
lapack_complex_float* A, lapack_int const* lda, | |||
@@ -22097,7 +22101,7 @@ void LAPACK_ctrtri_base( | |||
#endif | |||
#define LAPACK_dtrtri_base LAPACK_GLOBAL(dtrtri,DTRTRI) | |||
void LAPACK_dtrtri_base( | |||
lapack_int LAPACK_dtrtri_base( | |||
char const* uplo, char const* diag, | |||
lapack_int const* n, | |||
double* A, lapack_int const* lda, | |||
@@ -22113,7 +22117,7 @@ void LAPACK_dtrtri_base( | |||
#endif | |||
#define LAPACK_strtri_base LAPACK_GLOBAL(strtri,STRTRI) | |||
void LAPACK_strtri_base( | |||
lapack_int LAPACK_strtri_base( | |||
char const* uplo, char const* diag, | |||
lapack_int const* n, | |||
float* A, lapack_int const* lda, | |||
@@ -22129,7 +22133,7 @@ void LAPACK_strtri_base( | |||
#endif | |||
#define LAPACK_ztrtri_base LAPACK_GLOBAL(ztrtri,ZTRTRI) | |||
void LAPACK_ztrtri_base( | |||
lapack_int LAPACK_ztrtri_base( | |||
char const* uplo, char const* diag, | |||
lapack_int const* n, | |||
lapack_complex_double* A, lapack_int const* lda, | |||
@@ -22145,7 +22149,7 @@ void LAPACK_ztrtri_base( | |||
#endif | |||
#define LAPACK_ctrtrs_base LAPACK_GLOBAL(ctrtrs,CTRTRS) | |||
void LAPACK_ctrtrs_base( | |||
lapack_int LAPACK_ctrtrs_base( | |||
char const* uplo, char const* trans, char const* diag, | |||
lapack_int const* n, lapack_int const* nrhs, | |||
lapack_complex_float const* A, lapack_int const* lda, | |||
@@ -22162,7 +22166,7 @@ void LAPACK_ctrtrs_base( | |||
#endif | |||
#define LAPACK_dtrtrs_base LAPACK_GLOBAL(dtrtrs,DTRTRS) | |||
void LAPACK_dtrtrs_base( | |||
lapack_int LAPACK_dtrtrs_base( | |||
char const* uplo, char const* trans, char const* diag, | |||
lapack_int const* n, lapack_int const* nrhs, | |||
double const* A, lapack_int const* lda, | |||
@@ -22179,7 +22183,7 @@ void LAPACK_dtrtrs_base( | |||
#endif | |||
#define LAPACK_strtrs_base LAPACK_GLOBAL(strtrs,STRTRS) | |||
void LAPACK_strtrs_base( | |||
lapack_int LAPACK_strtrs_base( | |||
char const* uplo, char const* trans, char const* diag, | |||
lapack_int const* n, lapack_int const* nrhs, | |||
float const* A, lapack_int const* lda, | |||
@@ -22196,7 +22200,7 @@ void LAPACK_strtrs_base( | |||
#endif | |||
#define LAPACK_ztrtrs_base LAPACK_GLOBAL(ztrtrs,ZTRTRS) | |||
void LAPACK_ztrtrs_base( | |||
lapack_int LAPACK_ztrtrs_base( | |||
char const* uplo, char const* trans, char const* diag, | |||
lapack_int const* n, lapack_int const* nrhs, | |||
lapack_complex_double const* A, lapack_int const* lda, | |||
@@ -32,9 +32,16 @@ | |||
#include "lapacke_utils.h" | |||
#ifdef __EMSCRIPTEN__ | |||
lapack_logical LAPACKE_lsame( char ca, char cb ) | |||
{ | |||
return (lapack_logical) LAPACK_lsame( &ca, &cb ); | |||
} | |||
#else | |||
lapack_logical LAPACKE_lsame( char ca, char cb ) | |||
{ | |||
return (lapack_logical) LAPACK_lsame( &ca, &cb, 1, 1 ); | |||
} | |||
#endif | |||
@@ -740,7 +740,7 @@ rices</b> */ | |||
/* > \ingroup complexGEeigen */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgegs_(char *jobvsl, char *jobvsr, integer *n, complex * | |||
/* Subroutine */ void cgegs_(char *jobvsl, char *jobvsr, integer *n, complex * | |||
a, integer *lda, complex *b, integer *ldb, complex *alpha, complex * | |||
beta, complex *vsl, integer *ldvsl, complex *vsr, integer *ldvsr, | |||
complex *work, integer *lwork, real *rwork, integer *info) | |||
@@ -758,7 +758,7 @@ rices</b> */ | |||
integer iwork; | |||
logical ilvsr; | |||
integer irows; | |||
extern /* Subroutine */ int cggbak_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cggbak_(char *, char *, integer *, integer *, | |||
integer *, real *, real *, integer *, complex *, integer *, | |||
integer *), cggbal_(char *, integer *, complex *, | |||
integer *, complex *, integer *, integer *, integer *, real *, | |||
@@ -766,24 +766,24 @@ rices</b> */ | |||
integer nb; | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *); | |||
extern /* Subroutine */ int cgghrd_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cgghrd_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, integer *, complex *, | |||
integer *, complex *, integer *, integer *), | |||
clascl_(char *, integer *, integer *, real *, real *, integer *, | |||
integer *, complex *, integer *, integer *); | |||
logical ilascl, ilbscl; | |||
extern /* Subroutine */ int cgeqrf_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgeqrf_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *, integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int clacpy_(char *, integer *, integer *, complex | |||
extern /* Subroutine */ void clacpy_(char *, integer *, integer *, complex | |||
*, integer *, complex *, integer *), claset_(char *, | |||
integer *, integer *, complex *, complex *, complex *, integer *); | |||
real safmin; | |||
extern /* Subroutine */ int xerbla_(char *, integer *); | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
real bignum; | |||
extern /* Subroutine */ int chgeqz_(char *, char *, char *, integer *, | |||
extern /* Subroutine */ void chgeqz_(char *, char *, char *, integer *, | |||
integer *, integer *, complex *, integer *, complex *, integer *, | |||
complex *, complex *, complex *, integer *, complex *, integer *, | |||
complex *, integer *, real *, integer *); | |||
@@ -791,7 +791,7 @@ rices</b> */ | |||
real anrmto; | |||
integer lwkmin, nb1, nb2, nb3; | |||
real bnrmto; | |||
extern /* Subroutine */ int cungqr_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void cungqr_(integer *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *, integer *), | |||
cunmqr_(char *, char *, integer *, integer *, integer *, complex | |||
*, integer *, complex *, complex *, integer *, complex *, integer | |||
@@ -898,16 +898,16 @@ rices</b> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEGS ", &i__1); | |||
return 0; | |||
xerbla_("CGEGS ", &i__1, 6); | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*n == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants */ | |||
@@ -934,7 +934,7 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -955,7 +955,7 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1092,13 +1092,13 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
clascl_("G", &c_n1, &c_n1, &anrmto, &anrm, n, &c__1, &alpha[1], n, & | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1107,20 +1107,20 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
clascl_("G", &c_n1, &c_n1, &bnrmto, &bnrm, n, &c__1, &beta[1], n, & | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
} | |||
L10: | |||
work[1].r = (real) lwkopt, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGEGS */ | |||
@@ -799,7 +799,7 @@ rices</b> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgegv_(char *jobvl, char *jobvr, integer *n, complex *a, | |||
/* Subroutine */ void cgegv_(char *jobvl, char *jobvr, integer *n, complex *a, | |||
integer *lda, complex *b, integer *ldb, complex *alpha, complex *beta, | |||
complex *vl, integer *ldvl, complex *vr, integer *ldvr, complex * | |||
work, integer *lwork, real *rwork, integer *info) | |||
@@ -819,7 +819,7 @@ rices</b> */ | |||
real anrm1, anrm2, bnrm1, bnrm2, absai, scale, absar, sbeta; | |||
extern logical lsame_(char *, char *); | |||
integer ileft, iinfo, icols, iwork, irows, jc; | |||
extern /* Subroutine */ int cggbak_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cggbak_(char *, char *, integer *, integer *, | |||
integer *, real *, real *, integer *, complex *, integer *, | |||
integer *), cggbal_(char *, integer *, complex *, | |||
integer *, complex *, integer *, integer *, integer *, real *, | |||
@@ -828,40 +828,40 @@ rices</b> */ | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *); | |||
integer jr; | |||
extern /* Subroutine */ int cgghrd_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cgghrd_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, integer *, complex *, | |||
integer *, complex *, integer *, integer *); | |||
real salfai; | |||
extern /* Subroutine */ int clascl_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void clascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, complex *, integer *, integer *), cgeqrf_(integer *, integer *, complex *, integer *, | |||
complex *, complex *, integer *, integer *); | |||
real salfar; | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int clacpy_(char *, integer *, integer *, complex | |||
extern /* Subroutine */ void clacpy_(char *, integer *, integer *, complex | |||
*, integer *, complex *, integer *), claset_(char *, | |||
integer *, integer *, complex *, complex *, complex *, integer *); | |||
real safmin; | |||
extern /* Subroutine */ int ctgevc_(char *, char *, logical *, integer *, | |||
extern /* Subroutine */ void ctgevc_(char *, char *, logical *, integer *, | |||
complex *, integer *, complex *, integer *, complex *, integer *, | |||
complex *, integer *, integer *, integer *, complex *, real *, | |||
integer *); | |||
real safmax; | |||
char chtemp[1]; | |||
logical ldumma[1]; | |||
extern /* Subroutine */ int chgeqz_(char *, char *, char *, integer *, | |||
extern /* Subroutine */ void chgeqz_(char *, char *, char *, integer *, | |||
integer *, integer *, complex *, integer *, complex *, integer *, | |||
complex *, complex *, complex *, integer *, complex *, integer *, | |||
complex *, integer *, real *, integer *), | |||
xerbla_(char *, integer *); | |||
complex *, integer *, real *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
integer ijobvl, iright; | |||
logical ilimit; | |||
integer ijobvr; | |||
extern /* Subroutine */ int cungqr_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void cungqr_(integer *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *, integer *); | |||
integer lwkmin, nb1, nb2, nb3; | |||
extern /* Subroutine */ int cunmqr_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cunmqr_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *, integer *); | |||
integer irwork, lwkopt; | |||
@@ -969,16 +969,16 @@ rices</b> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEGV ", &i__1); | |||
return 0; | |||
xerbla_("CGEGV ", &i__1, 6); | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*n == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants */ | |||
@@ -1005,7 +1005,7 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 10; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1026,7 +1026,7 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 10; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1353,7 +1353,7 @@ L60: | |||
L80: | |||
work[1].r = (real) lwkopt, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGEGV */ | |||
@@ -700,7 +700,7 @@ f"> */ | |||
/* > \ingroup complexGEsolve */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgelsx_(integer *m, integer *n, integer *nrhs, complex * | |||
/* Subroutine */ void cgelsx_(integer *m, integer *n, integer *nrhs, complex * | |||
a, integer *lda, complex *b, integer *ldb, integer *jpvt, real *rcond, | |||
integer *rank, complex *work, real *rwork, integer *info) | |||
{ | |||
@@ -712,31 +712,31 @@ f"> */ | |||
real anrm, bnrm, smin, smax; | |||
integer i__, j, k, iascl, ibscl, ismin, ismax; | |||
complex c1, c2; | |||
extern /* Subroutine */ int ctrsm_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void ctrsm_(char *, char *, char *, char *, | |||
integer *, integer *, complex *, complex *, integer *, complex *, | |||
integer *), claic1_(integer *, | |||
integer *, complex *, real *, complex *, complex *, real *, | |||
complex *, complex *); | |||
complex s1, s2, t1, t2; | |||
extern /* Subroutine */ int cunm2r_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cunm2r_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *), slabad_(real *, real *); | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *); | |||
integer mn; | |||
extern /* Subroutine */ int clascl_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void clascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, complex *, integer *, integer *), cgeqpf_(integer *, integer *, complex *, integer *, | |||
integer *, complex *, complex *, real *, integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int claset_(char *, integer *, integer *, complex | |||
*, complex *, complex *, integer *), xerbla_(char *, | |||
integer *); | |||
extern /* Subroutine */ void claset_(char *, integer *, integer *, complex | |||
*, complex *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
real bignum; | |||
extern /* Subroutine */ int clatzm_(char *, integer *, integer *, complex | |||
extern /* Subroutine */ void clatzm_(char *, integer *, integer *, complex | |||
*, integer *, complex *, complex *, complex *, integer *, complex | |||
*); | |||
real sminpr; | |||
extern /* Subroutine */ int ctzrqf_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void ctzrqf_(integer *, integer *, complex *, | |||
integer *, complex *, integer *); | |||
real smaxpr, smlnum; | |||
@@ -787,8 +787,8 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGELSX", &i__1); | |||
return 0; | |||
xerbla_("CGELSX", &i__1, 6); | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -797,7 +797,7 @@ f"> */ | |||
i__1 = f2cmin(*m,*n); | |||
if (f2cmin(i__1,*nrhs) == 0) { | |||
*rank = 0; | |||
return 0; | |||
return; | |||
} | |||
/* Get machine parameters */ | |||
@@ -1029,7 +1029,7 @@ L70: | |||
L100: | |||
return 0; | |||
return; | |||
/* End of CGELSX */ | |||
@@ -661,7 +661,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeqpf_(integer *m, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgeqpf_(integer *m, integer *n, complex *a, integer *lda, | |||
integer *jpvt, complex *tau, complex *work, real *rwork, integer * | |||
info) | |||
{ | |||
@@ -674,21 +674,21 @@ f"> */ | |||
real temp, temp2; | |||
integer i__, j; | |||
real tol3z; | |||
extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex * | |||
extern /* Subroutine */ void clarf_(char *, integer *, integer *, complex * | |||
, integer *, complex *, complex *, integer *, complex *), | |||
cswap_(integer *, complex *, integer *, complex *, integer *); | |||
integer itemp; | |||
extern /* Subroutine */ int cgeqr2_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgeqr2_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *); | |||
extern real scnrm2_(integer *, complex *, integer *); | |||
extern /* Subroutine */ int cunm2r_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cunm2r_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *); | |||
integer ma, mn; | |||
extern /* Subroutine */ int clarfg_(integer *, complex *, complex *, | |||
extern /* Subroutine */ void clarfg_(integer *, complex *, complex *, | |||
integer *, complex *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int xerbla_(char *, integer *); | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
extern integer isamax_(integer *, real *, integer *); | |||
complex aii; | |||
integer pvt; | |||
@@ -725,8 +725,8 @@ f"> */ | |||
} | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEQPF", &i__1); | |||
return 0; | |||
xerbla_("CGEQPF", &i__1, 6); | |||
return; | |||
} | |||
mn = f2cmin(*m,*n); | |||
@@ -865,7 +865,7 @@ f"> */ | |||
/* L40: */ | |||
} | |||
} | |||
return 0; | |||
return; | |||
/* End of CGEQPF */ | |||
@@ -849,7 +849,7 @@ f"> */ | |||
/* > California at Berkeley, USA */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cggsvd_(char *jobu, char *jobv, char *jobq, integer *m, | |||
/* Subroutine */ void cggsvd_(char *jobu, char *jobv, char *jobq, integer *m, | |||
integer *n, integer *p, integer *k, integer *l, complex *a, integer * | |||
lda, complex *b, integer *ldb, real *alpha, real *beta, complex *u, | |||
integer *ldu, complex *v, integer *ldv, complex *q, integer *ldq, | |||
@@ -868,17 +868,18 @@ f"> */ | |||
extern logical lsame_(char *, char *); | |||
real anorm, bnorm; | |||
logical wantq; | |||
extern /* Subroutine */ int scopy_(integer *, real *, integer *, real *, | |||
extern /* Subroutine */ void scopy_(integer *, real *, integer *, real *, | |||
integer *); | |||
logical wantu, wantv; | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *), slamch_(char *); | |||
extern /* Subroutine */ int ctgsja_(char *, char *, char *, integer *, | |||
extern /* Subroutine */ void ctgsja_(char *, char *, char *, integer *, | |||
integer *, integer *, integer *, integer *, complex *, integer *, | |||
complex *, integer *, real *, real *, real *, real *, complex *, | |||
integer *, complex *, integer *, complex *, integer *, complex *, | |||
integer *, integer *), xerbla_(char *, | |||
integer *), cggsvp_(char *, char *, char *, integer *, | |||
integer *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void cggsvp_(char *, char *, char *, integer *, | |||
integer *, integer *, complex *, integer *, complex *, integer *, | |||
real *, real *, integer *, integer *, complex *, integer *, | |||
complex *, integer *, complex *, integer *, integer *, real *, | |||
@@ -950,8 +951,8 @@ f"> */ | |||
} | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGGSVD", &i__1); | |||
return 0; | |||
xerbla_("CGGSVD", &i__1, 6); | |||
return; | |||
} | |||
/* Compute the Frobenius norm of matrices A and B */ | |||
@@ -1011,7 +1012,7 @@ f"> */ | |||
/* L20: */ | |||
} | |||
return 0; | |||
return; | |||
/* End of CGGSVD */ | |||
@@ -774,7 +774,7 @@ f"> */ | |||
/* > a matrix. It may be replaced by a better rank determination strategy. */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cggsvp_(char *jobu, char *jobv, char *jobq, integer *m, | |||
/* Subroutine */ void cggsvp_(char *jobu, char *jobv, char *jobq, integer *m, | |||
integer *p, integer *n, complex *a, integer *lda, complex *b, integer | |||
*ldb, real *tola, real *tolb, integer *k, integer *l, complex *u, | |||
integer *ldu, complex *v, integer *ldv, complex *q, integer *ldq, | |||
@@ -790,7 +790,7 @@ f"> */ | |||
integer i__, j; | |||
extern logical lsame_(char *, char *); | |||
logical wantq, wantu, wantv; | |||
extern /* Subroutine */ int cgeqr2_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgeqr2_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *), cgerq2_(integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *), | |||
cung2r_(integer *, integer *, integer *, complex *, integer *, | |||
@@ -802,8 +802,9 @@ f"> */ | |||
integer *, complex *, complex *, real *, integer *), clacpy_(char | |||
*, integer *, integer *, complex *, integer *, complex *, integer | |||
*), claset_(char *, integer *, integer *, complex *, | |||
complex *, complex *, integer *), xerbla_(char *, integer | |||
*), clapmt_(logical *, integer *, integer *, complex *, | |||
complex *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void clapmt_(logical *, integer *, integer *, complex *, | |||
integer *, integer *); | |||
logical forwrd; | |||
@@ -872,8 +873,8 @@ f"> */ | |||
} | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGGSVP", &i__1); | |||
return 0; | |||
xerbla_("CGGSVP", &i__1, 6); | |||
return; | |||
} | |||
/* QR with column pivoting of B: B*P = V*( S11 S12 ) */ | |||
@@ -1131,7 +1132,7 @@ f"> */ | |||
} | |||
return 0; | |||
return; | |||
/* End of CGGSVP */ | |||
@@ -684,7 +684,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int clahrd_(integer *n, integer *k, integer *nb, complex *a, | |||
/* Subroutine */ void clahrd_(integer *n, integer *k, integer *nb, complex *a, | |||
integer *lda, complex *tau, complex *t, integer *ldt, complex *y, | |||
integer *ldy) | |||
{ | |||
@@ -695,7 +695,7 @@ f"> */ | |||
/* Local variables */ | |||
integer i__; | |||
extern /* Subroutine */ int cscal_(integer *, complex *, complex *, | |||
extern /* Subroutine */ void cscal_(integer *, complex *, complex *, | |||
integer *), cgemv_(char *, integer *, integer *, complex *, | |||
complex *, integer *, complex *, integer *, complex *, complex *, | |||
integer *), ccopy_(integer *, complex *, integer *, | |||
@@ -703,7 +703,7 @@ f"> */ | |||
integer *, complex *, integer *), ctrmv_(char *, char *, char *, | |||
integer *, complex *, integer *, complex *, integer *); | |||
complex ei; | |||
extern /* Subroutine */ int clarfg_(integer *, complex *, complex *, | |||
extern /* Subroutine */ void clarfg_(integer *, complex *, complex *, | |||
integer *, complex *), clacgv_(integer *, complex *, integer *); | |||
@@ -732,7 +732,7 @@ f"> */ | |||
/* Function Body */ | |||
if (*n <= 1) { | |||
return 0; | |||
return; | |||
} | |||
i__1 = *nb; | |||
@@ -856,7 +856,7 @@ f"> */ | |||
i__1 = *k + *nb + *nb * a_dim1; | |||
a[i__1].r = ei.r, a[i__1].i = ei.i; | |||
return 0; | |||
return; | |||
/* End of CLAHRD */ | |||
@@ -666,7 +666,7 @@ f"> */ | |||
/* > \ingroup complexOTHERcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int clatzm_(char *side, integer *m, integer *n, complex *v, | |||
/* Subroutine */ void clatzm_(char *side, integer *m, integer *n, complex *v, | |||
integer *incv, complex *tau, complex *c1, complex *c2, integer *ldc, | |||
complex *work) | |||
{ | |||
@@ -675,12 +675,12 @@ f"> */ | |||
complex q__1; | |||
/* Local variables */ | |||
extern /* Subroutine */ int cgerc_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgerc_(integer *, integer *, complex *, | |||
complex *, integer *, complex *, integer *, complex *, integer *), | |||
cgemv_(char *, integer *, integer *, complex *, complex *, | |||
integer *, complex *, integer *, complex *, complex *, integer *); | |||
extern logical lsame_(char *, char *); | |||
extern /* Subroutine */ int cgeru_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgeru_(integer *, integer *, complex *, | |||
complex *, integer *, complex *, integer *, complex *, integer *), | |||
ccopy_(integer *, complex *, integer *, complex *, integer *), | |||
caxpy_(integer *, complex *, complex *, integer *, complex *, | |||
@@ -708,7 +708,7 @@ f"> */ | |||
/* Function Body */ | |||
if (f2cmin(*m,*n) == 0 || tau->r == 0.f && tau->i == 0.f) { | |||
return 0; | |||
return; | |||
} | |||
if (lsame_(side, "L")) { | |||
@@ -751,7 +751,7 @@ f"> */ | |||
ldc); | |||
} | |||
return 0; | |||
return; | |||
/* End of CLATZM */ | |||
@@ -652,7 +652,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int ctzrqf_(integer *m, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void ctzrqf_(integer *m, integer *n, complex *a, integer *lda, | |||
complex *tau, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -661,18 +661,18 @@ f"> */ | |||
/* Local variables */ | |||
integer i__, k; | |||
extern /* Subroutine */ int cgerc_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgerc_(integer *, integer *, complex *, | |||
complex *, integer *, complex *, integer *, complex *, integer *); | |||
complex alpha; | |||
extern /* Subroutine */ int cgemv_(char *, integer *, integer *, complex * | |||
extern /* Subroutine */ void cgemv_(char *, integer *, integer *, complex * | |||
, complex *, integer *, complex *, integer *, complex *, complex * | |||
, integer *), ccopy_(integer *, complex *, integer *, | |||
complex *, integer *), caxpy_(integer *, complex *, complex *, | |||
integer *, complex *, integer *); | |||
integer m1; | |||
extern /* Subroutine */ int clarfg_(integer *, complex *, complex *, | |||
integer *, complex *), clacgv_(integer *, complex *, integer *), | |||
xerbla_(char *, integer *); | |||
extern /* Subroutine */ void clarfg_(integer *, complex *, complex *, | |||
integer *, complex *), clacgv_(integer *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
/* -- LAPACK computational routine (version 3.7.0) -- */ | |||
@@ -703,14 +703,14 @@ f"> */ | |||
} | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CTZRQF", &i__1); | |||
return 0; | |||
xerbla_("CTZRQF", &i__1, 6); | |||
return; | |||
} | |||
/* Perform the factorization. */ | |||
if (*m == 0) { | |||
return 0; | |||
return; | |||
} | |||
if (*m == *n) { | |||
i__1 = *n; | |||
@@ -783,7 +783,7 @@ f"> */ | |||
} | |||
} | |||
return 0; | |||
return; | |||
/* End of CTZRQF */ | |||
@@ -742,7 +742,7 @@ rices</b> */ | |||
/* > \ingroup doubleGEeigen */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int dgegs_(char *jobvsl, char *jobvsr, integer *n, | |||
/* Subroutine */ void dgegs_(char *jobvsl, char *jobvsr, integer *n, | |||
doublereal *a, integer *lda, doublereal *b, integer *ldb, doublereal * | |||
alphar, doublereal *alphai, doublereal *beta, doublereal *vsl, | |||
integer *ldvsl, doublereal *vsr, integer *ldvsr, doublereal *work, | |||
@@ -761,45 +761,45 @@ rices</b> */ | |||
integer iwork; | |||
logical ilvsr; | |||
integer irows; | |||
extern /* Subroutine */ int dggbak_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void dggbak_(char *, char *, integer *, integer *, | |||
integer *, doublereal *, doublereal *, integer *, doublereal *, | |||
integer *, integer *); | |||
integer nb; | |||
extern /* Subroutine */ int dggbal_(char *, integer *, doublereal *, | |||
extern /* Subroutine */ void dggbal_(char *, integer *, doublereal *, | |||
integer *, doublereal *, integer *, integer *, integer *, | |||
doublereal *, doublereal *, doublereal *, integer *); | |||
extern doublereal dlamch_(char *), dlange_(char *, integer *, | |||
integer *, doublereal *, integer *, doublereal *); | |||
extern /* Subroutine */ int dgghrd_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void dgghrd_(char *, char *, integer *, integer *, | |||
integer *, doublereal *, integer *, doublereal *, integer *, | |||
doublereal *, integer *, doublereal *, integer *, integer *), dlascl_(char *, integer *, integer *, doublereal | |||
*, doublereal *, integer *, integer *, doublereal *, integer *, | |||
integer *); | |||
logical ilascl, ilbscl; | |||
extern /* Subroutine */ int dgeqrf_(integer *, integer *, doublereal *, | |||
extern /* Subroutine */ void dgeqrf_(integer *, integer *, doublereal *, | |||
integer *, doublereal *, doublereal *, integer *, integer *), | |||
dlacpy_(char *, integer *, integer *, doublereal *, integer *, | |||
doublereal *, integer *); | |||
doublereal safmin; | |||
extern /* Subroutine */ int dlaset_(char *, integer *, integer *, | |||
doublereal *, doublereal *, doublereal *, integer *), | |||
xerbla_(char *, integer *); | |||
extern /* Subroutine */ void dlaset_(char *, integer *, integer *, | |||
doublereal *, doublereal *, doublereal *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
doublereal bignum; | |||
extern /* Subroutine */ int dhgeqz_(char *, char *, char *, integer *, | |||
extern /* Subroutine */ void dhgeqz_(char *, char *, char *, integer *, | |||
integer *, integer *, doublereal *, integer *, doublereal *, | |||
integer *, doublereal *, doublereal *, doublereal *, doublereal *, | |||
integer *, doublereal *, integer *, doublereal *, integer *, | |||
integer *); | |||
integer ijobvl, iright, ijobvr; | |||
extern /* Subroutine */ int dorgqr_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void dorgqr_(integer *, integer *, integer *, | |||
doublereal *, integer *, doublereal *, doublereal *, integer *, | |||
integer *); | |||
doublereal anrmto; | |||
integer lwkmin, nb1, nb2, nb3; | |||
doublereal bnrmto; | |||
extern /* Subroutine */ int dormqr_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void dormqr_(char *, char *, integer *, integer *, | |||
integer *, doublereal *, integer *, doublereal *, doublereal *, | |||
integer *, doublereal *, integer *, integer *); | |||
doublereal smlnum; | |||
@@ -904,16 +904,16 @@ rices</b> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("DGEGS ", &i__1); | |||
return 0; | |||
xerbla_("DGEGS ", &i__1, 6); | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*n == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants */ | |||
@@ -940,7 +940,7 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -961,7 +961,7 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1098,19 +1098,19 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
dlascl_("G", &c_n1, &c_n1, &anrmto, &anrm, n, &c__1, &alphar[1], n, & | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
dlascl_("G", &c_n1, &c_n1, &anrmto, &anrm, n, &c__1, &alphai[1], n, & | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1119,20 +1119,20 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
dlascl_("G", &c_n1, &c_n1, &bnrmto, &bnrm, n, &c__1, &beta[1], n, & | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
} | |||
L10: | |||
work[1] = (doublereal) lwkopt; | |||
return 0; | |||
return; | |||
/* End of DGEGS */ | |||
@@ -822,7 +822,7 @@ rices</b> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int dgegv_(char *jobvl, char *jobvr, integer *n, doublereal * | |||
/* Subroutine */ void dgegv_(char *jobvl, char *jobvr, integer *n, doublereal * | |||
a, integer *lda, doublereal *b, integer *ldb, doublereal *alphar, | |||
doublereal *alphai, doublereal *beta, doublereal *vl, integer *ldvl, | |||
doublereal *vr, integer *ldvr, doublereal *work, integer *lwork, | |||
@@ -842,11 +842,11 @@ rices</b> */ | |||
doublereal anrm1, anrm2, bnrm1, bnrm2, absai, scale, absar, sbeta; | |||
extern logical lsame_(char *, char *); | |||
integer ileft, iinfo, icols, iwork, irows, jc; | |||
extern /* Subroutine */ int dggbak_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void dggbak_(char *, char *, integer *, integer *, | |||
integer *, doublereal *, doublereal *, integer *, doublereal *, | |||
integer *, integer *); | |||
integer nb; | |||
extern /* Subroutine */ int dggbal_(char *, integer *, doublereal *, | |||
extern /* Subroutine */ void dggbal_(char *, integer *, doublereal *, | |||
integer *, doublereal *, integer *, integer *, integer *, | |||
doublereal *, doublereal *, doublereal *, integer *); | |||
integer in; | |||
@@ -854,42 +854,42 @@ rices</b> */ | |||
integer *, doublereal *, integer *, doublereal *); | |||
integer jr; | |||
doublereal salfai; | |||
extern /* Subroutine */ int dgghrd_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void dgghrd_(char *, char *, integer *, integer *, | |||
integer *, doublereal *, integer *, doublereal *, integer *, | |||
doublereal *, integer *, doublereal *, integer *, integer *), dlascl_(char *, integer *, integer *, doublereal | |||
*, doublereal *, integer *, integer *, doublereal *, integer *, | |||
integer *); | |||
doublereal salfar; | |||
extern /* Subroutine */ int dgeqrf_(integer *, integer *, doublereal *, | |||
extern /* Subroutine */ void dgeqrf_(integer *, integer *, doublereal *, | |||
integer *, doublereal *, doublereal *, integer *, integer *), | |||
dlacpy_(char *, integer *, integer *, doublereal *, integer *, | |||
doublereal *, integer *); | |||
doublereal safmin; | |||
extern /* Subroutine */ int dlaset_(char *, integer *, integer *, | |||
extern /* Subroutine */ void dlaset_(char *, integer *, integer *, | |||
doublereal *, doublereal *, doublereal *, integer *); | |||
doublereal safmax; | |||
char chtemp[1]; | |||
logical ldumma[1]; | |||
extern /* Subroutine */ int dhgeqz_(char *, char *, char *, integer *, | |||
extern /* Subroutine */ void dhgeqz_(char *, char *, char *, integer *, | |||
integer *, integer *, doublereal *, integer *, doublereal *, | |||
integer *, doublereal *, doublereal *, doublereal *, doublereal *, | |||
integer *, doublereal *, integer *, doublereal *, integer *, | |||
integer *), dtgevc_(char *, char *, | |||
logical *, integer *, doublereal *, integer *, doublereal *, | |||
integer *, doublereal *, integer *, doublereal *, integer *, | |||
integer *, integer *, doublereal *, integer *), | |||
xerbla_(char *, integer *); | |||
integer *, integer *, doublereal *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
integer ijobvl, iright; | |||
logical ilimit; | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
integer ijobvr; | |||
extern /* Subroutine */ int dorgqr_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void dorgqr_(integer *, integer *, integer *, | |||
doublereal *, integer *, doublereal *, doublereal *, integer *, | |||
integer *); | |||
doublereal onepls; | |||
integer lwkmin, nb1, nb2, nb3; | |||
extern /* Subroutine */ int dormqr_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void dormqr_(char *, char *, integer *, integer *, | |||
integer *, doublereal *, integer *, doublereal *, doublereal *, | |||
integer *, doublereal *, integer *, integer *); | |||
integer lwkopt; | |||
@@ -997,16 +997,16 @@ rices</b> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("DGEGV ", &i__1); | |||
return 0; | |||
xerbla_("DGEGV ", &i__1, 6); | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*n == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants */ | |||
@@ -1034,7 +1034,7 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 10; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1055,7 +1055,7 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 10; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1426,7 +1426,7 @@ L100: | |||
L120: | |||
work[1] = (doublereal) lwkopt; | |||
return 0; | |||
return; | |||
/* End of DGEGV */ | |||
@@ -694,7 +694,7 @@ f"> */ | |||
/* > \ingroup doubleGEsolve */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int dgelsx_(integer *m, integer *n, integer *nrhs, | |||
/* Subroutine */ void dgelsx_(integer *m, integer *n, integer *nrhs, | |||
doublereal *a, integer *lda, doublereal *b, integer *ldb, integer * | |||
jpvt, doublereal *rcond, integer *rank, doublereal *work, integer * | |||
info) | |||
@@ -707,32 +707,32 @@ f"> */ | |||
doublereal anrm, bnrm, smin, smax; | |||
integer i__, j, k, iascl, ibscl, ismin, ismax; | |||
doublereal c1, c2; | |||
extern /* Subroutine */ int dtrsm_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void dtrsm_(char *, char *, char *, char *, | |||
integer *, integer *, doublereal *, doublereal *, integer *, | |||
doublereal *, integer *), dlaic1_( | |||
integer *, integer *, doublereal *, doublereal *, doublereal *, | |||
doublereal *, doublereal *, doublereal *, doublereal *); | |||
doublereal s1, s2, t1, t2; | |||
extern /* Subroutine */ int dorm2r_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void dorm2r_(char *, char *, integer *, integer *, | |||
integer *, doublereal *, integer *, doublereal *, doublereal *, | |||
integer *, doublereal *, integer *), dlabad_( | |||
doublereal *, doublereal *); | |||
extern doublereal dlamch_(char *), dlange_(char *, integer *, | |||
integer *, doublereal *, integer *, doublereal *); | |||
integer mn; | |||
extern /* Subroutine */ int dlascl_(char *, integer *, integer *, | |||
extern /* Subroutine */ void dlascl_(char *, integer *, integer *, | |||
doublereal *, doublereal *, integer *, integer *, doublereal *, | |||
integer *, integer *), dgeqpf_(integer *, integer *, | |||
doublereal *, integer *, integer *, doublereal *, doublereal *, | |||
integer *), dlaset_(char *, integer *, integer *, doublereal *, | |||
doublereal *, doublereal *, integer *), xerbla_(char *, | |||
integer *); | |||
doublereal *, doublereal *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
doublereal bignum; | |||
extern /* Subroutine */ int dlatzm_(char *, integer *, integer *, | |||
extern /* Subroutine */ void dlatzm_(char *, integer *, integer *, | |||
doublereal *, integer *, doublereal *, doublereal *, doublereal *, | |||
integer *, doublereal *); | |||
doublereal sminpr, smaxpr, smlnum; | |||
extern /* Subroutine */ int dtzrqf_(integer *, integer *, doublereal *, | |||
extern /* Subroutine */ void dtzrqf_(integer *, integer *, doublereal *, | |||
integer *, doublereal *, integer *); | |||
@@ -781,8 +781,8 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("DGELSX", &i__1); | |||
return 0; | |||
xerbla_("DGELSX", &i__1, 6); | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -791,7 +791,7 @@ f"> */ | |||
i__1 = f2cmin(*m,*n); | |||
if (f2cmin(i__1,*nrhs) == 0) { | |||
*rank = 0; | |||
return 0; | |||
return; | |||
} | |||
/* Get machine parameters */ | |||
@@ -999,7 +999,7 @@ L70: | |||
L100: | |||
return 0; | |||
return; | |||
/* End of DGELSX */ | |||
@@ -655,7 +655,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int dgeqpf_(integer *m, integer *n, doublereal *a, integer * | |||
/* Subroutine */ void dgeqpf_(integer *m, integer *n, doublereal *a, integer * | |||
lda, integer *jpvt, doublereal *tau, doublereal *work, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -668,11 +668,11 @@ f"> */ | |||
doublereal temp2; | |||
integer i__, j; | |||
doublereal tol3z; | |||
extern /* Subroutine */ int dlarf_(char *, integer *, integer *, | |||
extern /* Subroutine */ void dlarf_(char *, integer *, integer *, | |||
doublereal *, integer *, doublereal *, doublereal *, integer *, | |||
doublereal *); | |||
integer itemp; | |||
extern /* Subroutine */ int dswap_(integer *, doublereal *, integer *, | |||
extern /* Subroutine */ void dswap_(integer *, doublereal *, integer *, | |||
doublereal *, integer *), dgeqr2_(integer *, integer *, | |||
doublereal *, integer *, doublereal *, doublereal *, integer *), | |||
dorm2r_(char *, char *, integer *, integer *, integer *, | |||
@@ -681,10 +681,10 @@ f"> */ | |||
integer ma; | |||
extern doublereal dlamch_(char *); | |||
integer mn; | |||
extern /* Subroutine */ int dlarfg_(integer *, doublereal *, doublereal *, | |||
extern /* Subroutine */ void dlarfg_(integer *, doublereal *, doublereal *, | |||
integer *, doublereal *); | |||
extern integer idamax_(integer *, doublereal *, integer *); | |||
extern /* Subroutine */ int xerbla_(char *, integer *); | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
doublereal aii; | |||
integer pvt; | |||
@@ -719,8 +719,8 @@ f"> */ | |||
} | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("DGEQPF", &i__1); | |||
return 0; | |||
xerbla_("DGEQPF", &i__1, 6); | |||
return; | |||
} | |||
mn = f2cmin(*m,*n); | |||
@@ -854,7 +854,7 @@ f"> */ | |||
/* L40: */ | |||
} | |||
} | |||
return 0; | |||
return; | |||
/* End of DGEQPF */ | |||
@@ -845,7 +845,7 @@ f"> */ | |||
/* > California at Berkeley, USA */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int dggsvd_(char *jobu, char *jobv, char *jobq, integer *m, | |||
/* Subroutine */ void dggsvd_(char *jobu, char *jobv, char *jobq, integer *m, | |||
integer *n, integer *p, integer *k, integer *l, doublereal *a, | |||
integer *lda, doublereal *b, integer *ldb, doublereal *alpha, | |||
doublereal *beta, doublereal *u, integer *ldu, doublereal *v, integer | |||
@@ -864,17 +864,19 @@ f"> */ | |||
integer ncallmycycle, i__, j; | |||
extern logical lsame_(char *, char *); | |||
doublereal anorm, bnorm; | |||
extern /* Subroutine */ int dcopy_(integer *, doublereal *, integer *, | |||
extern /* Subroutine */ void dcopy_(integer *, doublereal *, integer *, | |||
doublereal *, integer *); | |||
logical wantq, wantu, wantv; | |||
extern doublereal dlamch_(char *), dlange_(char *, integer *, | |||
integer *, doublereal *, integer *, doublereal *); | |||
extern /* Subroutine */ int dtgsja_(char *, char *, char *, integer *, | |||
extern /* Subroutine */ void dtgsja_(char *, char *, char *, integer *, | |||
integer *, integer *, integer *, integer *, doublereal *, integer | |||
*, doublereal *, integer *, doublereal *, doublereal *, | |||
doublereal *, doublereal *, doublereal *, integer *, doublereal *, | |||
integer *, doublereal *, integer *, doublereal *, integer *, | |||
integer *), xerbla_(char *, integer *), dggsvp_(char *, char *, char *, integer *, integer *, | |||
integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void dggsvp_(char *, char *, char *, integer *, integer *, | |||
integer *, doublereal *, integer *, doublereal *, integer *, | |||
doublereal *, doublereal *, integer *, integer *, doublereal *, | |||
integer *, doublereal *, integer *, doublereal *, integer *, | |||
@@ -945,8 +947,8 @@ f"> */ | |||
} | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("DGGSVD", &i__1); | |||
return 0; | |||
xerbla_("DGGSVD", &i__1, 6); | |||
return; | |||
} | |||
/* Compute the Frobenius norm of matrices A and B */ | |||
@@ -1007,7 +1009,7 @@ f"> */ | |||
/* L20: */ | |||
} | |||
return 0; | |||
return; | |||
/* End of DGGSVD */ | |||
@@ -768,7 +768,7 @@ f"> */ | |||
/* > a matrix. It may be replaced by a better rank determination strategy. */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int dggsvp_(char *jobu, char *jobv, char *jobq, integer *m, | |||
/* Subroutine */ void dggsvp_(char *jobu, char *jobv, char *jobq, integer *m, | |||
integer *p, integer *n, doublereal *a, integer *lda, doublereal *b, | |||
integer *ldb, doublereal *tola, doublereal *tolb, integer *k, integer | |||
*l, doublereal *u, integer *ldu, doublereal *v, integer *ldv, | |||
@@ -784,7 +784,7 @@ f"> */ | |||
integer i__, j; | |||
extern logical lsame_(char *, char *); | |||
logical wantq, wantu, wantv; | |||
extern /* Subroutine */ int dgeqr2_(integer *, integer *, doublereal *, | |||
extern /* Subroutine */ void dgeqr2_(integer *, integer *, doublereal *, | |||
integer *, doublereal *, doublereal *, integer *), dgerq2_( | |||
integer *, integer *, doublereal *, integer *, doublereal *, | |||
doublereal *, integer *), dorg2r_(integer *, integer *, integer *, | |||
@@ -797,7 +797,9 @@ f"> */ | |||
integer *, integer *, doublereal *, doublereal *, integer *), | |||
dlacpy_(char *, integer *, integer *, doublereal *, integer *, | |||
doublereal *, integer *), dlaset_(char *, integer *, | |||
integer *, doublereal *, doublereal *, doublereal *, integer *), xerbla_(char *, integer *), dlapmt_(logical *, | |||
integer *, doublereal *, doublereal *, doublereal *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void dlapmt_(logical *, | |||
integer *, integer *, doublereal *, integer *, integer *); | |||
logical forwrd; | |||
@@ -865,8 +867,8 @@ f"> */ | |||
} | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("DGGSVP", &i__1); | |||
return 0; | |||
xerbla_("DGGSVP", &i__1, 6); | |||
return; | |||
} | |||
/* QR with column pivoting of B: B*P = V*( S11 S12 ) */ | |||
@@ -1115,7 +1117,7 @@ f"> */ | |||
} | |||
return 0; | |||
return; | |||
/* End of DGGSVP */ | |||
@@ -685,7 +685,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int dlahrd_(integer *n, integer *k, integer *nb, doublereal * | |||
/* Subroutine */ void dlahrd_(integer *n, integer *k, integer *nb, doublereal * | |||
a, integer *lda, doublereal *tau, doublereal *t, integer *ldt, | |||
doublereal *y, integer *ldy) | |||
{ | |||
@@ -696,7 +696,7 @@ f"> */ | |||
/* Local variables */ | |||
integer i__; | |||
extern /* Subroutine */ int dscal_(integer *, doublereal *, doublereal *, | |||
extern /* Subroutine */ void dscal_(integer *, doublereal *, doublereal *, | |||
integer *), dgemv_(char *, integer *, integer *, doublereal *, | |||
doublereal *, integer *, doublereal *, integer *, doublereal *, | |||
doublereal *, integer *), dcopy_(integer *, doublereal *, | |||
@@ -705,7 +705,7 @@ f"> */ | |||
*, char *, char *, integer *, doublereal *, integer *, doublereal | |||
*, integer *); | |||
doublereal ei; | |||
extern /* Subroutine */ int dlarfg_(integer *, doublereal *, doublereal *, | |||
extern /* Subroutine */ void dlarfg_(integer *, doublereal *, doublereal *, | |||
integer *, doublereal *); | |||
@@ -734,7 +734,7 @@ f"> */ | |||
/* Function Body */ | |||
if (*n <= 1) { | |||
return 0; | |||
return; | |||
} | |||
i__1 = *nb; | |||
@@ -843,7 +843,7 @@ f"> */ | |||
} | |||
a[*k + *nb + *nb * a_dim1] = ei; | |||
return 0; | |||
return; | |||
/* End of DLAHRD */ | |||
@@ -665,7 +665,7 @@ f"> */ | |||
/* > \ingroup doubleOTHERcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int dlatzm_(char *side, integer *m, integer *n, doublereal * | |||
/* Subroutine */ void dlatzm_(char *side, integer *m, integer *n, doublereal * | |||
v, integer *incv, doublereal *tau, doublereal *c1, doublereal *c2, | |||
integer *ldc, doublereal *work) | |||
{ | |||
@@ -674,11 +674,11 @@ f"> */ | |||
doublereal d__1; | |||
/* Local variables */ | |||
extern /* Subroutine */ int dger_(integer *, integer *, doublereal *, | |||
extern /* Subroutine */ void dger_(integer *, integer *, doublereal *, | |||
doublereal *, integer *, doublereal *, integer *, doublereal *, | |||
integer *); | |||
extern logical lsame_(char *, char *); | |||
extern /* Subroutine */ int dgemv_(char *, integer *, integer *, | |||
extern /* Subroutine */ void dgemv_(char *, integer *, integer *, | |||
doublereal *, doublereal *, integer *, doublereal *, integer *, | |||
doublereal *, doublereal *, integer *), dcopy_(integer *, | |||
doublereal *, integer *, doublereal *, integer *), daxpy_(integer | |||
@@ -707,7 +707,7 @@ f"> */ | |||
/* Function Body */ | |||
if (f2cmin(*m,*n) == 0 || *tau == 0.) { | |||
return 0; | |||
return; | |||
} | |||
if (lsame_(side, "L")) { | |||
@@ -748,7 +748,7 @@ f"> */ | |||
ldc); | |||
} | |||
return 0; | |||
return; | |||
/* End of DLATZM */ | |||
@@ -652,7 +652,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int dtzrqf_(integer *m, integer *n, doublereal *a, integer * | |||
/* Subroutine */ void dtzrqf_(integer *m, integer *n, doublereal *a, integer * | |||
lda, doublereal *tau, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -660,19 +660,20 @@ f"> */ | |||
doublereal d__1; | |||
/* Local variables */ | |||
extern /* Subroutine */ int dger_(integer *, integer *, doublereal *, | |||
extern /* Subroutine */ void dger_(integer *, integer *, doublereal *, | |||
doublereal *, integer *, doublereal *, integer *, doublereal *, | |||
integer *); | |||
integer i__, k; | |||
extern /* Subroutine */ int dgemv_(char *, integer *, integer *, | |||
extern /* Subroutine */ void dgemv_(char *, integer *, integer *, | |||
doublereal *, doublereal *, integer *, doublereal *, integer *, | |||
doublereal *, doublereal *, integer *), dcopy_(integer *, | |||
doublereal *, integer *, doublereal *, integer *), daxpy_(integer | |||
*, doublereal *, doublereal *, integer *, doublereal *, integer *) | |||
; | |||
integer m1; | |||
extern /* Subroutine */ int dlarfg_(integer *, doublereal *, doublereal *, | |||
integer *, doublereal *), xerbla_(char *, integer *); | |||
extern /* Subroutine */ void dlarfg_(integer *, doublereal *, doublereal *, | |||
integer *, doublereal *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
/* -- LAPACK computational routine (version 3.7.0) -- */ | |||
@@ -703,14 +704,14 @@ f"> */ | |||
} | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("DTZRQF", &i__1); | |||
return 0; | |||
xerbla_("DTZRQF", &i__1, 6); | |||
return; | |||
} | |||
/* Perform the factorization. */ | |||
if (*m == 0) { | |||
return 0; | |||
return; | |||
} | |||
if (*m == *n) { | |||
i__1 = *n; | |||
@@ -768,7 +769,7 @@ f"> */ | |||
} | |||
} | |||
return 0; | |||
return; | |||
/* End of DTZRQF */ | |||
@@ -742,7 +742,7 @@ ices</b> */ | |||
/* > \ingroup realGEeigen */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int sgegs_(char *jobvsl, char *jobvsr, integer *n, real *a, | |||
/* Subroutine */ void sgegs_(char *jobvsl, char *jobvsr, integer *n, real *a, | |||
integer *lda, real *b, integer *ldb, real *alphar, real *alphai, real | |||
*beta, real *vsl, integer *ldvsl, real *vsr, integer *ldvsr, real * | |||
work, integer *lwork, integer *info) | |||
@@ -760,7 +760,7 @@ ices</b> */ | |||
integer iwork; | |||
logical ilvsr; | |||
integer irows, nb; | |||
extern /* Subroutine */ int sggbak_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void sggbak_(char *, char *, integer *, integer *, | |||
integer *, real *, real *, integer *, real *, integer *, integer * | |||
), sggbal_(char *, integer *, real *, integer *, | |||
real *, integer *, integer *, integer *, real *, real *, real *, | |||
@@ -769,35 +769,35 @@ ices</b> */ | |||
extern real slamch_(char *), slange_(char *, integer *, integer *, | |||
real *, integer *, real *); | |||
real safmin; | |||
extern /* Subroutine */ int sgghrd_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void sgghrd_(char *, char *, integer *, integer *, | |||
integer *, real *, integer *, real *, integer *, real *, integer * | |||
, real *, integer *, integer *), xerbla_(char *, | |||
integer *); | |||
, real *, integer *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
real bignum; | |||
extern /* Subroutine */ int slascl_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void slascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, real *, integer *, integer *); | |||
integer ijobvl, iright; | |||
extern /* Subroutine */ int sgeqrf_(integer *, integer *, real *, integer | |||
extern /* Subroutine */ void sgeqrf_(integer *, integer *, real *, integer | |||
*, real *, real *, integer *, integer *); | |||
integer ijobvr; | |||
extern /* Subroutine */ int slacpy_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void slacpy_(char *, integer *, integer *, real *, | |||
integer *, real *, integer *), slaset_(char *, integer *, | |||
integer *, real *, real *, real *, integer *); | |||
real anrmto; | |||
integer lwkmin, nb1, nb2, nb3; | |||
real bnrmto; | |||
extern /* Subroutine */ int shgeqz_(char *, char *, char *, integer *, | |||
extern /* Subroutine */ void shgeqz_(char *, char *, char *, integer *, | |||
integer *, integer *, real *, integer *, real *, integer *, real * | |||
, real *, real *, real *, integer *, real *, integer *, real *, | |||
integer *, integer *); | |||
real smlnum; | |||
extern /* Subroutine */ int sorgqr_(integer *, integer *, integer *, real | |||
extern /* Subroutine */ void sorgqr_(integer *, integer *, integer *, real | |||
*, integer *, real *, real *, integer *, integer *); | |||
integer lwkopt; | |||
logical lquery; | |||
extern /* Subroutine */ int sormqr_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void sormqr_(char *, char *, integer *, integer *, | |||
integer *, real *, integer *, real *, real *, integer *, real *, | |||
integer *, integer *); | |||
integer ihi, ilo; | |||
@@ -899,16 +899,16 @@ ices</b> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("SGEGS ", &i__1); | |||
return 0; | |||
xerbla_("SGEGS ", &i__1, 6); | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*n == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants */ | |||
@@ -935,7 +935,7 @@ ices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -956,7 +956,7 @@ ices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1093,19 +1093,19 @@ ices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
slascl_("G", &c_n1, &c_n1, &anrmto, &anrm, n, &c__1, &alphar[1], n, & | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
slascl_("G", &c_n1, &c_n1, &anrmto, &anrm, n, &c__1, &alphai[1], n, & | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1114,20 +1114,20 @@ ices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
slascl_("G", &c_n1, &c_n1, &bnrmto, &bnrm, n, &c__1, &beta[1], n, & | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
} | |||
L10: | |||
work[1] = (real) lwkopt; | |||
return 0; | |||
return; | |||
/* End of SGEGS */ | |||
@@ -822,7 +822,7 @@ rices</b> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int sgegv_(char *jobvl, char *jobvr, integer *n, real *a, | |||
/* Subroutine */ void sgegv_(char *jobvl, char *jobvr, integer *n, real *a, | |||
integer *lda, real *b, integer *ldb, real *alphar, real *alphai, real | |||
*beta, real *vl, integer *ldvl, real *vr, integer *ldvr, real *work, | |||
integer *lwork, integer *info) | |||
@@ -842,7 +842,7 @@ rices</b> */ | |||
extern logical lsame_(char *, char *); | |||
integer ileft, iinfo, icols, iwork, irows, jc, nb, in, jr; | |||
real salfai; | |||
extern /* Subroutine */ int sggbak_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void sggbak_(char *, char *, integer *, integer *, | |||
integer *, real *, real *, integer *, real *, integer *, integer * | |||
), sggbal_(char *, integer *, real *, integer *, | |||
real *, integer *, integer *, integer *, real *, real *, real *, | |||
@@ -851,22 +851,23 @@ rices</b> */ | |||
extern real slamch_(char *), slange_(char *, integer *, integer *, | |||
real *, integer *, real *); | |||
real safmin; | |||
extern /* Subroutine */ int sgghrd_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void sgghrd_(char *, char *, integer *, integer *, | |||
integer *, real *, integer *, real *, integer *, real *, integer * | |||
, real *, integer *, integer *); | |||
real safmax; | |||
char chtemp[1]; | |||
logical ldumma[1]; | |||
extern /* Subroutine */ int slascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, real *, integer *, integer *), xerbla_(char *, integer *); | |||
extern /* Subroutine */ void slascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, real *, integer *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
integer ijobvl, iright; | |||
logical ilimit; | |||
extern /* Subroutine */ int sgeqrf_(integer *, integer *, real *, integer | |||
extern /* Subroutine */ void sgeqrf_(integer *, integer *, real *, integer | |||
*, real *, real *, integer *, integer *); | |||
integer ijobvr; | |||
extern /* Subroutine */ int slacpy_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void slacpy_(char *, integer *, integer *, real *, | |||
integer *, real *, integer *), slaset_(char *, integer *, | |||
integer *, real *, real *, real *, integer *), stgevc_( | |||
char *, char *, logical *, integer *, real *, integer *, real *, | |||
@@ -874,7 +875,7 @@ rices</b> */ | |||
integer *, real *, integer *); | |||
real onepls; | |||
integer lwkmin, nb1, nb2, nb3; | |||
extern /* Subroutine */ int shgeqz_(char *, char *, char *, integer *, | |||
extern /* Subroutine */ void shgeqz_(char *, char *, char *, integer *, | |||
integer *, integer *, real *, integer *, real *, integer *, real * | |||
, real *, real *, real *, integer *, real *, integer *, real *, | |||
integer *, integer *), sorgqr_(integer *, | |||
@@ -882,7 +883,7 @@ rices</b> */ | |||
, integer *); | |||
integer lwkopt; | |||
logical lquery; | |||
extern /* Subroutine */ int sormqr_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void sormqr_(char *, char *, integer *, integer *, | |||
integer *, real *, integer *, real *, real *, integer *, real *, | |||
integer *, integer *); | |||
integer ihi, ilo; | |||
@@ -988,16 +989,16 @@ rices</b> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("SGEGV ", &i__1); | |||
return 0; | |||
xerbla_("SGEGV ", &i__1, 6); | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*n == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants */ | |||
@@ -1025,7 +1026,7 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 10; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1046,7 +1047,7 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 10; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1417,7 +1418,7 @@ L100: | |||
L120: | |||
work[1] = (real) lwkopt; | |||
return 0; | |||
return; | |||
/* End of SGEGV */ | |||
@@ -694,7 +694,7 @@ f"> */ | |||
/* > \ingroup realGEsolve */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int sgelsx_(integer *m, integer *n, integer *nrhs, real *a, | |||
/* Subroutine */ void sgelsx_(integer *m, integer *n, integer *nrhs, real *a, | |||
integer *lda, real *b, integer *ldb, integer *jpvt, real *rcond, | |||
integer *rank, real *work, integer *info) | |||
{ | |||
@@ -706,7 +706,7 @@ f"> */ | |||
real anrm, bnrm, smin, smax; | |||
integer i__, j, k, iascl, ibscl, ismin, ismax; | |||
real c1, c2, s1, s2, t1, t2; | |||
extern /* Subroutine */ int strsm_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void strsm_(char *, char *, char *, char *, | |||
integer *, integer *, real *, real *, integer *, real *, integer * | |||
), slaic1_(integer *, integer *, | |||
real *, real *, real *, real *, real *, real *, real *), sorm2r_( | |||
@@ -716,14 +716,14 @@ f"> */ | |||
integer mn; | |||
extern real slamch_(char *), slange_(char *, integer *, integer *, | |||
real *, integer *, real *); | |||
extern /* Subroutine */ int xerbla_(char *, integer *); | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
real bignum; | |||
extern /* Subroutine */ int slascl_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void slascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, real *, integer *, integer *), sgeqpf_(integer *, integer *, real *, integer *, integer | |||
*, real *, real *, integer *), slaset_(char *, integer *, integer | |||
*, real *, real *, real *, integer *); | |||
real sminpr, smaxpr, smlnum; | |||
extern /* Subroutine */ int slatzm_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void slatzm_(char *, integer *, integer *, real *, | |||
integer *, real *, real *, real *, integer *, real *), | |||
stzrqf_(integer *, integer *, real *, integer *, real *, integer * | |||
); | |||
@@ -774,8 +774,8 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("SGELSX", &i__1); | |||
return 0; | |||
xerbla_("SGELSX", &i__1, 6); | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -784,7 +784,7 @@ f"> */ | |||
i__1 = f2cmin(*m,*n); | |||
if (f2cmin(i__1,*nrhs) == 0) { | |||
*rank = 0; | |||
return 0; | |||
return; | |||
} | |||
/* Get machine parameters */ | |||
@@ -992,7 +992,7 @@ L70: | |||
L100: | |||
return 0; | |||
return; | |||
/* End of SGELSX */ | |||
@@ -655,7 +655,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int sgeqpf_(integer *m, integer *n, real *a, integer *lda, | |||
/* Subroutine */ void sgeqpf_(integer *m, integer *n, real *a, integer *lda, | |||
integer *jpvt, real *tau, real *work, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -667,19 +667,20 @@ f"> */ | |||
extern real snrm2_(integer *, real *, integer *); | |||
integer i__, j; | |||
real tol3z; | |||
extern /* Subroutine */ int slarf_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void slarf_(char *, integer *, integer *, real *, | |||
integer *, real *, real *, integer *, real *); | |||
integer itemp; | |||
extern /* Subroutine */ int sswap_(integer *, real *, integer *, real *, | |||
extern /* Subroutine */ void sswap_(integer *, real *, integer *, real *, | |||
integer *), sgeqr2_(integer *, integer *, real *, integer *, real | |||
*, real *, integer *); | |||
integer ma; | |||
extern /* Subroutine */ int sorm2r_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void sorm2r_(char *, char *, integer *, integer *, | |||
integer *, real *, integer *, real *, real *, integer *, real *, | |||
integer *); | |||
integer mn; | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int xerbla_(char *, integer *), slarfg_( | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
extern void slarfg_( | |||
integer *, real *, real *, integer *, real *); | |||
extern integer isamax_(integer *, real *, integer *); | |||
real aii; | |||
@@ -716,8 +717,8 @@ f"> */ | |||
} | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("SGEQPF", &i__1); | |||
return 0; | |||
xerbla_("SGEQPF", &i__1, 6); | |||
return; | |||
} | |||
mn = f2cmin(*m,*n); | |||
@@ -851,7 +852,7 @@ f"> */ | |||
/* L40: */ | |||
} | |||
} | |||
return 0; | |||
return; | |||
/* End of SGEQPF */ | |||
@@ -845,7 +845,7 @@ f"> */ | |||
/* > California at Berkeley, USA */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int sggsvd_(char *jobu, char *jobv, char *jobq, integer *m, | |||
/* Subroutine */ void sggsvd_(char *jobu, char *jobv, char *jobq, integer *m, | |||
integer *n, integer *p, integer *k, integer *l, real *a, integer *lda, | |||
real *b, integer *ldb, real *alpha, real *beta, real *u, integer * | |||
ldu, real *v, integer *ldv, real *q, integer *ldq, real *work, | |||
@@ -864,12 +864,13 @@ f"> */ | |||
extern logical lsame_(char *, char *); | |||
real anorm, bnorm; | |||
logical wantq; | |||
extern /* Subroutine */ int scopy_(integer *, real *, integer *, real *, | |||
extern /* Subroutine */ void scopy_(integer *, real *, integer *, real *, | |||
integer *); | |||
logical wantu, wantv; | |||
extern real slamch_(char *), slange_(char *, integer *, integer *, | |||
real *, integer *, real *); | |||
extern /* Subroutine */ int xerbla_(char *, integer *), stgsja_( | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
extern void stgsja_( | |||
char *, char *, char *, integer *, integer *, integer *, integer * | |||
, integer *, real *, integer *, real *, integer *, real *, real *, | |||
real *, real *, real *, integer *, real *, integer *, real *, | |||
@@ -944,8 +945,8 @@ f"> */ | |||
} | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("SGGSVD", &i__1); | |||
return 0; | |||
xerbla_("SGGSVD", &i__1, 6); | |||
return; | |||
} | |||
/* Compute the Frobenius norm of matrices A and B */ | |||
@@ -1006,7 +1007,7 @@ f"> */ | |||
/* L20: */ | |||
} | |||
return 0; | |||
return; | |||
/* End of SGGSVD */ | |||
@@ -768,7 +768,7 @@ f"> */ | |||
/* > a matrix. It may be replaced by a better rank determination strategy. */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int sggsvp_(char *jobu, char *jobv, char *jobq, integer *m, | |||
/* Subroutine */ void sggsvp_(char *jobu, char *jobv, char *jobq, integer *m, | |||
integer *p, integer *n, real *a, integer *lda, real *b, integer *ldb, | |||
real *tola, real *tolb, integer *k, integer *l, real *u, integer *ldu, | |||
real *v, integer *ldv, real *q, integer *ldq, integer *iwork, real * | |||
@@ -783,13 +783,15 @@ f"> */ | |||
integer i__, j; | |||
extern logical lsame_(char *, char *); | |||
logical wantq, wantu, wantv; | |||
extern /* Subroutine */ int sgeqr2_(integer *, integer *, real *, integer | |||
extern /* Subroutine */ void sgeqr2_(integer *, integer *, real *, integer | |||
*, real *, real *, integer *), sgerq2_(integer *, integer *, real | |||
*, integer *, real *, real *, integer *), sorg2r_(integer *, | |||
integer *, integer *, real *, integer *, real *, real *, integer * | |||
), sorm2r_(char *, char *, integer *, integer *, integer *, real * | |||
, integer *, real *, real *, integer *, real *, integer *), sormr2_(char *, char *, integer *, integer *, integer *, | |||
real *, integer *, real *, real *, integer *, real *, integer *), xerbla_(char *, integer *), sgeqpf_( | |||
real *, integer *, real *, real *, integer *, real *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void sgeqpf_( | |||
integer *, integer *, real *, integer *, integer *, real *, real * | |||
, integer *), slacpy_(char *, integer *, integer *, real *, | |||
integer *, real *, integer *), slaset_(char *, integer *, | |||
@@ -861,8 +863,8 @@ f"> */ | |||
} | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("SGGSVP", &i__1); | |||
return 0; | |||
xerbla_("SGGSVP", &i__1, 6); | |||
return; | |||
} | |||
/* QR with column pivoting of B: B*P = V*( S11 S12 ) */ | |||
@@ -1111,7 +1113,7 @@ f"> */ | |||
} | |||
return 0; | |||
return; | |||
/* End of SGGSVP */ | |||
@@ -685,7 +685,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int slahrd_(integer *n, integer *k, integer *nb, real *a, | |||
/* Subroutine */ void slahrd_(integer *n, integer *k, integer *nb, real *a, | |||
integer *lda, real *tau, real *t, integer *ldt, real *y, integer *ldy) | |||
{ | |||
/* System generated locals */ | |||
@@ -695,14 +695,14 @@ f"> */ | |||
/* Local variables */ | |||
integer i__; | |||
extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *), | |||
extern /* Subroutine */ void sscal_(integer *, real *, real *, integer *), | |||
sgemv_(char *, integer *, integer *, real *, real *, integer *, | |||
real *, integer *, real *, real *, integer *), scopy_( | |||
integer *, real *, integer *, real *, integer *), saxpy_(integer * | |||
, real *, real *, integer *, real *, integer *), strmv_(char *, | |||
char *, char *, integer *, real *, integer *, real *, integer *); | |||
real ei; | |||
extern /* Subroutine */ int slarfg_(integer *, real *, real *, integer *, | |||
extern /* Subroutine */ void slarfg_(integer *, real *, real *, integer *, | |||
real *); | |||
@@ -731,7 +731,7 @@ f"> */ | |||
/* Function Body */ | |||
if (*n <= 1) { | |||
return 0; | |||
return; | |||
} | |||
i__1 = *nb; | |||
@@ -840,7 +840,7 @@ f"> */ | |||
} | |||
a[*k + *nb + *nb * a_dim1] = ei; | |||
return 0; | |||
return; | |||
/* End of SLAHRD */ | |||
@@ -665,7 +665,7 @@ f"> */ | |||
/* > \ingroup realOTHERcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int slatzm_(char *side, integer *m, integer *n, real *v, | |||
/* Subroutine */ void slatzm_(char *side, integer *m, integer *n, real *v, | |||
integer *incv, real *tau, real *c1, real *c2, integer *ldc, real * | |||
work) | |||
{ | |||
@@ -674,10 +674,10 @@ f"> */ | |||
real r__1; | |||
/* Local variables */ | |||
extern /* Subroutine */ int sger_(integer *, integer *, real *, real *, | |||
extern /* Subroutine */ void sger_(integer *, integer *, real *, real *, | |||
integer *, real *, integer *, real *, integer *); | |||
extern logical lsame_(char *, char *); | |||
extern /* Subroutine */ int sgemv_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void sgemv_(char *, integer *, integer *, real *, | |||
real *, integer *, real *, integer *, real *, real *, integer *), scopy_(integer *, real *, integer *, real *, integer *), | |||
saxpy_(integer *, real *, real *, integer *, real *, integer *); | |||
@@ -703,7 +703,7 @@ f"> */ | |||
/* Function Body */ | |||
if (f2cmin(*m,*n) == 0 || *tau == 0.f) { | |||
return 0; | |||
return; | |||
} | |||
if (lsame_(side, "L")) { | |||
@@ -744,7 +744,7 @@ f"> */ | |||
ldc); | |||
} | |||
return 0; | |||
return; | |||
/* End of SLATZM */ | |||
@@ -652,7 +652,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int stzrqf_(integer *m, integer *n, real *a, integer *lda, | |||
/* Subroutine */ void stzrqf_(integer *m, integer *n, real *a, integer *lda, | |||
real *tau, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -660,14 +660,16 @@ f"> */ | |||
real r__1; | |||
/* Local variables */ | |||
extern /* Subroutine */ int sger_(integer *, integer *, real *, real *, | |||
extern /* Subroutine */ void sger_(integer *, integer *, real *, real *, | |||
integer *, real *, integer *, real *, integer *); | |||
integer i__, k; | |||
extern /* Subroutine */ int sgemv_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void sgemv_(char *, integer *, integer *, real *, | |||
real *, integer *, real *, integer *, real *, real *, integer *), scopy_(integer *, real *, integer *, real *, integer *); | |||
integer m1; | |||
extern /* Subroutine */ int saxpy_(integer *, real *, real *, integer *, | |||
real *, integer *), xerbla_(char *, integer *), slarfg_( | |||
extern /* Subroutine */ void saxpy_(integer *, real *, real *, integer *, | |||
real *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void slarfg_( | |||
integer *, real *, real *, integer *, real *); | |||
@@ -699,14 +701,14 @@ f"> */ | |||
} | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("STZRQF", &i__1); | |||
return 0; | |||
xerbla_("STZRQF", &i__1, 6); | |||
return; | |||
} | |||
/* Perform the factorization. */ | |||
if (*m == 0) { | |||
return 0; | |||
return; | |||
} | |||
if (*m == *n) { | |||
i__1 = *n; | |||
@@ -764,7 +766,7 @@ f"> */ | |||
} | |||
} | |||
return 0; | |||
return; | |||
/* End of STZRQF */ | |||
@@ -740,7 +740,7 @@ rices</b> */ | |||
/* > \ingroup complex16GEeigen */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int zgegs_(char *jobvsl, char *jobvsr, integer *n, | |||
/* Subroutine */ void zgegs_(char *jobvsl, char *jobvsr, integer *n, | |||
doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, | |||
doublecomplex *alpha, doublecomplex *beta, doublecomplex *vsl, | |||
integer *ldvsl, doublecomplex *vsr, integer *ldvsr, doublecomplex * | |||
@@ -760,34 +760,34 @@ rices</b> */ | |||
logical ilvsr; | |||
integer irows, nb; | |||
extern doublereal dlamch_(char *); | |||
extern /* Subroutine */ int zggbak_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void zggbak_(char *, char *, integer *, integer *, | |||
integer *, doublereal *, doublereal *, integer *, doublecomplex *, | |||
integer *, integer *), zggbal_(char *, integer *, | |||
doublecomplex *, integer *, doublecomplex *, integer *, integer * | |||
, integer *, doublereal *, doublereal *, doublereal *, integer *); | |||
logical ilascl, ilbscl; | |||
doublereal safmin; | |||
extern /* Subroutine */ int xerbla_(char *, integer *); | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
extern doublereal zlange_(char *, integer *, integer *, doublecomplex *, | |||
integer *, doublereal *); | |||
doublereal bignum; | |||
integer ijobvl, iright; | |||
extern /* Subroutine */ int zgghrd_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void zgghrd_(char *, char *, integer *, integer *, | |||
integer *, doublecomplex *, integer *, doublecomplex *, integer *, | |||
doublecomplex *, integer *, doublecomplex *, integer *, integer * | |||
), zlascl_(char *, integer *, integer *, | |||
doublereal *, doublereal *, integer *, integer *, doublecomplex *, | |||
integer *, integer *); | |||
integer ijobvr; | |||
extern /* Subroutine */ int zgeqrf_(integer *, integer *, doublecomplex *, | |||
extern /* Subroutine */ void zgeqrf_(integer *, integer *, doublecomplex *, | |||
integer *, doublecomplex *, doublecomplex *, integer *, integer * | |||
); | |||
doublereal anrmto; | |||
integer lwkmin, nb1, nb2, nb3; | |||
doublereal bnrmto; | |||
extern /* Subroutine */ int zlacpy_(char *, integer *, integer *, | |||
extern /* Subroutine */ void zlacpy_(char *, integer *, integer *, | |||
doublecomplex *, integer *, doublecomplex *, integer *), | |||
zhgeqz_(char *, char *, char *, integer *, integer *, integer *, | |||
doublecomplex *, integer *, doublecomplex *, integer *, | |||
@@ -799,7 +799,7 @@ rices</b> */ | |||
doublereal smlnum; | |||
integer irwork, lwkopt; | |||
logical lquery; | |||
extern /* Subroutine */ int zungqr_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void zungqr_(integer *, integer *, integer *, | |||
doublecomplex *, integer *, doublecomplex *, doublecomplex *, | |||
integer *, integer *), zunmqr_(char *, char *, integer *, integer | |||
*, integer *, doublecomplex *, integer *, doublecomplex *, | |||
@@ -903,16 +903,16 @@ rices</b> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("ZGEGS ", &i__1); | |||
return 0; | |||
xerbla_("ZGEGS ", &i__1, 6); | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*n == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants */ | |||
@@ -939,7 +939,7 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -960,7 +960,7 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1097,13 +1097,13 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
zlascl_("G", &c_n1, &c_n1, &anrmto, &anrm, n, &c__1, &alpha[1], n, & | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1112,20 +1112,20 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
zlascl_("G", &c_n1, &c_n1, &bnrmto, &bnrm, n, &c__1, &beta[1], n, & | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 9; | |||
return 0; | |||
return; | |||
} | |||
} | |||
L10: | |||
work[1].r = (doublereal) lwkopt, work[1].i = 0.; | |||
return 0; | |||
return; | |||
/* End of ZGEGS */ | |||
@@ -799,7 +799,7 @@ rices</b> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int zgegv_(char *jobvl, char *jobvr, integer *n, | |||
/* Subroutine */ void zgegv_(char *jobvl, char *jobvr, integer *n, | |||
doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, | |||
doublecomplex *alpha, doublecomplex *beta, doublecomplex *vl, integer | |||
*ldvl, doublecomplex *vr, integer *ldvr, doublecomplex *work, integer | |||
@@ -823,13 +823,13 @@ rices</b> */ | |||
extern doublereal dlamch_(char *); | |||
integer jr; | |||
doublereal salfai; | |||
extern /* Subroutine */ int zggbak_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void zggbak_(char *, char *, integer *, integer *, | |||
integer *, doublereal *, doublereal *, integer *, doublecomplex *, | |||
integer *, integer *), zggbal_(char *, integer *, | |||
doublecomplex *, integer *, doublecomplex *, integer *, integer * | |||
, integer *, doublereal *, doublereal *, doublereal *, integer *); | |||
doublereal salfar, safmin; | |||
extern /* Subroutine */ int xerbla_(char *, integer *); | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
doublereal safmax; | |||
char chtemp[1]; | |||
logical ldumma[1]; | |||
@@ -839,18 +839,18 @@ rices</b> */ | |||
integer *, doublereal *); | |||
integer ijobvl, iright; | |||
logical ilimit; | |||
extern /* Subroutine */ int zgghrd_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void zgghrd_(char *, char *, integer *, integer *, | |||
integer *, doublecomplex *, integer *, doublecomplex *, integer *, | |||
doublecomplex *, integer *, doublecomplex *, integer *, integer * | |||
), zlascl_(char *, integer *, integer *, | |||
doublereal *, doublereal *, integer *, integer *, doublecomplex *, | |||
integer *, integer *); | |||
integer ijobvr; | |||
extern /* Subroutine */ int zgeqrf_(integer *, integer *, doublecomplex *, | |||
extern /* Subroutine */ void zgeqrf_(integer *, integer *, doublecomplex *, | |||
integer *, doublecomplex *, doublecomplex *, integer *, integer * | |||
); | |||
integer lwkmin, nb1, nb2, nb3; | |||
extern /* Subroutine */ int zlacpy_(char *, integer *, integer *, | |||
extern /* Subroutine */ void zlacpy_(char *, integer *, integer *, | |||
doublecomplex *, integer *, doublecomplex *, integer *), | |||
zlaset_(char *, integer *, integer *, doublecomplex *, | |||
doublecomplex *, doublecomplex *, integer *), ztgevc_( | |||
@@ -864,7 +864,7 @@ rices</b> */ | |||
integer *, doublecomplex *, integer *, doublereal *, integer *); | |||
integer irwork, lwkopt; | |||
logical lquery; | |||
extern /* Subroutine */ int zungqr_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void zungqr_(integer *, integer *, integer *, | |||
doublecomplex *, integer *, doublecomplex *, doublecomplex *, | |||
integer *, integer *), zunmqr_(char *, char *, integer *, integer | |||
*, integer *, doublecomplex *, integer *, doublecomplex *, | |||
@@ -972,16 +972,16 @@ rices</b> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("ZGEGV ", &i__1); | |||
return 0; | |||
xerbla_("ZGEGV ", &i__1, 6); | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*n == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants */ | |||
@@ -1008,7 +1008,7 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 10; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1029,7 +1029,7 @@ rices</b> */ | |||
iinfo); | |||
if (iinfo != 0) { | |||
*info = *n + 10; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1356,7 +1356,7 @@ L60: | |||
L80: | |||
work[1].r = (doublereal) lwkopt, work[1].i = 0.; | |||
return 0; | |||
return; | |||
/* End of ZGEGV */ | |||
@@ -700,7 +700,7 @@ f"> */ | |||
/* > \ingroup complex16GEsolve */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int zgelsx_(integer *m, integer *n, integer *nrhs, | |||
/* Subroutine */ void zgelsx_(integer *m, integer *n, integer *nrhs, | |||
doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, | |||
integer *jpvt, doublereal *rcond, integer *rank, doublecomplex *work, | |||
doublereal *rwork, integer *info) | |||
@@ -713,7 +713,7 @@ f"> */ | |||
doublereal anrm, bnrm, smin, smax; | |||
integer i__, j, k, iascl, ibscl, ismin, ismax; | |||
doublecomplex c1, c2, s1, s2, t1, t2; | |||
extern /* Subroutine */ int ztrsm_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void ztrsm_(char *, char *, char *, char *, | |||
integer *, integer *, doublecomplex *, doublecomplex *, integer *, | |||
doublecomplex *, integer *), | |||
zlaic1_(integer *, integer *, doublecomplex *, doublereal *, | |||
@@ -721,13 +721,14 @@ f"> */ | |||
doublecomplex *), dlabad_(doublereal *, doublereal *); | |||
extern doublereal dlamch_(char *); | |||
integer mn; | |||
extern /* Subroutine */ int zunm2r_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void zunm2r_(char *, char *, integer *, integer *, | |||
integer *, doublecomplex *, integer *, doublecomplex *, | |||
doublecomplex *, integer *, doublecomplex *, integer *), xerbla_(char *, integer *); | |||
doublecomplex *, integer *, doublecomplex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern doublereal zlange_(char *, integer *, integer *, doublecomplex *, | |||
integer *, doublereal *); | |||
doublereal bignum; | |||
extern /* Subroutine */ int zlascl_(char *, integer *, integer *, | |||
extern /* Subroutine */ void zlascl_(char *, integer *, integer *, | |||
doublereal *, doublereal *, integer *, integer *, doublecomplex *, | |||
integer *, integer *), zgeqpf_(integer *, integer *, | |||
doublecomplex *, integer *, integer *, doublecomplex *, | |||
@@ -735,7 +736,7 @@ f"> */ | |||
integer *, integer *, doublecomplex *, doublecomplex *, | |||
doublecomplex *, integer *); | |||
doublereal sminpr, smaxpr, smlnum; | |||
extern /* Subroutine */ int zlatzm_(char *, integer *, integer *, | |||
extern /* Subroutine */ void zlatzm_(char *, integer *, integer *, | |||
doublecomplex *, integer *, doublecomplex *, doublecomplex *, | |||
doublecomplex *, integer *, doublecomplex *), ztzrqf_( | |||
integer *, integer *, doublecomplex *, integer *, doublecomplex *, | |||
@@ -788,8 +789,8 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("ZGELSX", &i__1); | |||
return 0; | |||
xerbla_("ZGELSX", &i__1, 6); | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -798,7 +799,7 @@ f"> */ | |||
i__1 = f2cmin(*m,*n); | |||
if (f2cmin(i__1,*nrhs) == 0) { | |||
*rank = 0; | |||
return 0; | |||
return; | |||
} | |||
/* Get machine parameters */ | |||
@@ -1030,7 +1031,7 @@ L70: | |||
L100: | |||
return 0; | |||
return; | |||
/* End of ZGELSX */ | |||
@@ -661,7 +661,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int zgeqpf_(integer *m, integer *n, doublecomplex *a, | |||
/* Subroutine */ void zgeqpf_(integer *m, integer *n, doublecomplex *a, | |||
integer *lda, integer *jpvt, doublecomplex *tau, doublecomplex *work, | |||
doublereal *rwork, integer *info) | |||
{ | |||
@@ -675,7 +675,7 @@ f"> */ | |||
integer i__, j; | |||
doublereal tol3z; | |||
integer itemp; | |||
extern /* Subroutine */ int zlarf_(char *, integer *, integer *, | |||
extern /* Subroutine */ void zlarf_(char *, integer *, integer *, | |||
doublecomplex *, integer *, doublecomplex *, doublecomplex *, | |||
integer *, doublecomplex *), zswap_(integer *, | |||
doublecomplex *, integer *, doublecomplex *, integer *), zgeqr2_( | |||
@@ -685,11 +685,12 @@ f"> */ | |||
integer ma; | |||
extern doublereal dlamch_(char *); | |||
integer mn; | |||
extern /* Subroutine */ int zunm2r_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void zunm2r_(char *, char *, integer *, integer *, | |||
integer *, doublecomplex *, integer *, doublecomplex *, | |||
doublecomplex *, integer *, doublecomplex *, integer *); | |||
extern integer idamax_(integer *, doublereal *, integer *); | |||
extern /* Subroutine */ int xerbla_(char *, integer *), zlarfg_( | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
extern void zlarfg_( | |||
integer *, doublecomplex *, doublecomplex *, integer *, | |||
doublecomplex *); | |||
doublecomplex aii; | |||
@@ -727,8 +728,8 @@ f"> */ | |||
} | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("ZGEQPF", &i__1); | |||
return 0; | |||
xerbla_("ZGEQPF", &i__1, 6); | |||
return; | |||
} | |||
mn = f2cmin(*m,*n); | |||
@@ -867,7 +868,7 @@ f"> */ | |||
/* L40: */ | |||
} | |||
} | |||
return 0; | |||
return; | |||
/* End of ZGEQPF */ | |||
@@ -848,7 +848,7 @@ f"> */ | |||
/* > California at Berkeley, USA */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int zggsvd_(char *jobu, char *jobv, char *jobq, integer *m, | |||
/* Subroutine */ void zggsvd_(char *jobu, char *jobv, char *jobq, integer *m, | |||
integer *n, integer *p, integer *k, integer *l, doublecomplex *a, | |||
integer *lda, doublecomplex *b, integer *ldb, doublereal *alpha, | |||
doublereal *beta, doublecomplex *u, integer *ldu, doublecomplex *v, | |||
@@ -867,14 +867,14 @@ f"> */ | |||
integer ncallmycycle, i__, j; | |||
extern logical lsame_(char *, char *); | |||
doublereal anorm, bnorm; | |||
extern /* Subroutine */ int dcopy_(integer *, doublereal *, integer *, | |||
extern /* Subroutine */ void dcopy_(integer *, doublereal *, integer *, | |||
doublereal *, integer *); | |||
logical wantq, wantu, wantv; | |||
extern doublereal dlamch_(char *); | |||
extern /* Subroutine */ int xerbla_(char *, integer *); | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
extern doublereal zlange_(char *, integer *, integer *, doublecomplex *, | |||
integer *, doublereal *); | |||
extern /* Subroutine */ int ztgsja_(char *, char *, char *, integer *, | |||
extern /* Subroutine */ void ztgsja_(char *, char *, char *, integer *, | |||
integer *, integer *, integer *, integer *, doublecomplex *, | |||
integer *, doublecomplex *, integer *, doublereal *, doublereal *, | |||
doublereal *, doublereal *, doublecomplex *, integer *, | |||
@@ -953,8 +953,8 @@ f"> */ | |||
} | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("ZGGSVD", &i__1); | |||
return 0; | |||
xerbla_("ZGGSVD", &i__1, 6); | |||
return; | |||
} | |||
/* Compute the Frobenius norm of matrices A and B */ | |||
@@ -1014,7 +1014,7 @@ f"> */ | |||
/* L20: */ | |||
} | |||
return 0; | |||
return; | |||
/* End of ZGGSVD */ | |||
@@ -777,7 +777,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int zggsvp_(char *jobu, char *jobv, char *jobq, integer *m, | |||
/* Subroutine */ void zggsvp_(char *jobu, char *jobv, char *jobq, integer *m, | |||
integer *p, integer *n, doublecomplex *a, integer *lda, doublecomplex | |||
*b, integer *ldb, doublereal *tola, doublereal *tolb, integer *k, | |||
integer *l, doublecomplex *u, integer *ldu, doublecomplex *v, integer | |||
@@ -793,7 +793,7 @@ f"> */ | |||
integer i__, j; | |||
extern logical lsame_(char *, char *); | |||
logical wantq, wantu, wantv; | |||
extern /* Subroutine */ int zgeqr2_(integer *, integer *, doublecomplex *, | |||
extern /* Subroutine */ void zgeqr2_(integer *, integer *, doublecomplex *, | |||
integer *, doublecomplex *, doublecomplex *, integer *), zgerq2_( | |||
integer *, integer *, doublecomplex *, integer *, doublecomplex *, | |||
doublecomplex *, integer *), zung2r_(integer *, integer *, | |||
@@ -802,14 +802,15 @@ f"> */ | |||
integer *, integer *, doublecomplex *, integer *, doublecomplex *, | |||
doublecomplex *, integer *, doublecomplex *, integer *), zunmr2_(char *, char *, integer *, integer *, integer *, | |||
doublecomplex *, integer *, doublecomplex *, doublecomplex *, | |||
integer *, doublecomplex *, integer *), xerbla_( | |||
char *, integer *), zgeqpf_(integer *, integer *, | |||
integer *, doublecomplex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void zgeqpf_(integer *, integer *, | |||
doublecomplex *, integer *, integer *, doublecomplex *, | |||
doublecomplex *, doublereal *, integer *), zlacpy_(char *, | |||
integer *, integer *, doublecomplex *, integer *, doublecomplex *, | |||
integer *); | |||
logical forwrd; | |||
extern /* Subroutine */ int zlaset_(char *, integer *, integer *, | |||
extern /* Subroutine */ void zlaset_(char *, integer *, integer *, | |||
doublecomplex *, doublecomplex *, doublecomplex *, integer *), zlapmt_(logical *, integer *, integer *, doublecomplex *, | |||
integer *, integer *); | |||
@@ -878,8 +879,8 @@ f"> */ | |||
} | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("ZGGSVP", &i__1); | |||
return 0; | |||
xerbla_("ZGGSVP", &i__1, 6); | |||
return; | |||
} | |||
/* QR with column pivoting of B: B*P = V*( S11 S12 ) */ | |||
@@ -1137,7 +1138,7 @@ f"> */ | |||
} | |||
return 0; | |||
return; | |||
/* End of ZGGSVP */ | |||
@@ -684,7 +684,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int zlahrd_(integer *n, integer *k, integer *nb, | |||
/* Subroutine */ void zlahrd_(integer *n, integer *k, integer *nb, | |||
doublecomplex *a, integer *lda, doublecomplex *tau, doublecomplex *t, | |||
integer *ldt, doublecomplex *y, integer *ldy) | |||
{ | |||
@@ -695,7 +695,7 @@ f"> */ | |||
/* Local variables */ | |||
integer i__; | |||
extern /* Subroutine */ int zscal_(integer *, doublecomplex *, | |||
extern /* Subroutine */ void zscal_(integer *, doublecomplex *, | |||
doublecomplex *, integer *), zgemv_(char *, integer *, integer *, | |||
doublecomplex *, doublecomplex *, integer *, doublecomplex *, | |||
integer *, doublecomplex *, doublecomplex *, integer *), | |||
@@ -705,7 +705,7 @@ f"> */ | |||
char *, integer *, doublecomplex *, integer *, doublecomplex *, | |||
integer *); | |||
doublecomplex ei; | |||
extern /* Subroutine */ int zlarfg_(integer *, doublecomplex *, | |||
extern /* Subroutine */ void zlarfg_(integer *, doublecomplex *, | |||
doublecomplex *, integer *, doublecomplex *), zlacgv_(integer *, | |||
doublecomplex *, integer *); | |||
@@ -735,7 +735,7 @@ f"> */ | |||
/* Function Body */ | |||
if (*n <= 1) { | |||
return 0; | |||
return; | |||
} | |||
i__1 = *nb; | |||
@@ -859,7 +859,7 @@ f"> */ | |||
i__1 = *k + *nb + *nb * a_dim1; | |||
a[i__1].r = ei.r, a[i__1].i = ei.i; | |||
return 0; | |||
return; | |||
/* End of ZLAHRD */ | |||
@@ -666,7 +666,7 @@ f"> */ | |||
/* > \ingroup complex16OTHERcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int zlatzm_(char *side, integer *m, integer *n, | |||
/* Subroutine */ void zlatzm_(char *side, integer *m, integer *n, | |||
doublecomplex *v, integer *incv, doublecomplex *tau, doublecomplex * | |||
c1, doublecomplex *c2, integer *ldc, doublecomplex *work) | |||
{ | |||
@@ -676,7 +676,7 @@ f"> */ | |||
/* Local variables */ | |||
extern logical lsame_(char *, char *); | |||
extern /* Subroutine */ int zgerc_(integer *, integer *, doublecomplex *, | |||
extern /* Subroutine */ void zgerc_(integer *, integer *, doublecomplex *, | |||
doublecomplex *, integer *, doublecomplex *, integer *, | |||
doublecomplex *, integer *), zgemv_(char *, integer *, integer *, | |||
doublecomplex *, doublecomplex *, integer *, doublecomplex *, | |||
@@ -710,7 +710,7 @@ f"> */ | |||
/* Function Body */ | |||
if (f2cmin(*m,*n) == 0 || tau->r == 0. && tau->i == 0.) { | |||
return 0; | |||
return; | |||
} | |||
if (lsame_(side, "L")) { | |||
@@ -753,7 +753,7 @@ f"> */ | |||
ldc); | |||
} | |||
return 0; | |||
return; | |||
/* End of ZLATZM */ | |||
@@ -652,7 +652,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int ztzrqf_(integer *m, integer *n, doublecomplex *a, | |||
/* Subroutine */ void ztzrqf_(integer *m, integer *n, doublecomplex *a, | |||
integer *lda, doublecomplex *tau, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -662,16 +662,17 @@ f"> */ | |||
/* Local variables */ | |||
integer i__, k; | |||
doublecomplex alpha; | |||
extern /* Subroutine */ int zgerc_(integer *, integer *, doublecomplex *, | |||
extern /* Subroutine */ void zgerc_(integer *, integer *, doublecomplex *, | |||
doublecomplex *, integer *, doublecomplex *, integer *, | |||
doublecomplex *, integer *), zgemv_(char *, integer *, integer *, | |||
doublecomplex *, doublecomplex *, integer *, doublecomplex *, | |||
integer *, doublecomplex *, doublecomplex *, integer *); | |||
integer m1; | |||
extern /* Subroutine */ int zcopy_(integer *, doublecomplex *, integer *, | |||
extern /* Subroutine */ void zcopy_(integer *, doublecomplex *, integer *, | |||
doublecomplex *, integer *), zaxpy_(integer *, doublecomplex *, | |||
doublecomplex *, integer *, doublecomplex *, integer *), xerbla_( | |||
char *, integer *), zlarfg_(integer *, doublecomplex *, | |||
doublecomplex *, integer *, doublecomplex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void zlarfg_(integer *, doublecomplex *, | |||
doublecomplex *, integer *, doublecomplex *), zlacgv_(integer *, | |||
doublecomplex *, integer *); | |||
@@ -704,14 +705,14 @@ f"> */ | |||
} | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("ZTZRQF", &i__1); | |||
return 0; | |||
xerbla_("ZTZRQF", &i__1, 6); | |||
return; | |||
} | |||
/* Perform the factorization. */ | |||
if (*m == 0) { | |||
return 0; | |||
return; | |||
} | |||
if (*m == *n) { | |||
i__1 = *n; | |||
@@ -784,7 +785,7 @@ f"> */ | |||
} | |||
} | |||
return 0; | |||
return; | |||
/* End of ZTZRQF */ | |||
@@ -849,7 +849,7 @@ f"> */ | |||
/* > \ingroup complexOTHERcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cbbcsd_(char *jobu1, char *jobu2, char *jobv1t, char * | |||
/* Subroutine */ void cbbcsd_(char *jobu1, char *jobu2, char *jobv1t, char * | |||
jobv2t, char *trans, integer *m, integer *p, integer *q, real *theta, | |||
real *phi, complex *u1, integer *ldu1, complex *u2, integer *ldu2, | |||
complex *v1t, integer *ldv1t, complex *v2t, integer *ldv2t, real * | |||
@@ -869,14 +869,14 @@ f"> */ | |||
real thetamin, thetamax; | |||
logical restart11, restart12, restart21, restart22; | |||
integer iu1cs, iu2cs; | |||
extern /* Subroutine */ int slas2_(real *, real *, real *, real *, real *) | |||
extern /* Subroutine */ void slas2_(real *, real *, real *, real *, real *) | |||
; | |||
integer iu1sn, iu2sn, i__, j; | |||
real r__; | |||
extern /* Subroutine */ int cscal_(integer *, complex *, complex *, | |||
extern /* Subroutine */ void cscal_(integer *, complex *, complex *, | |||
integer *); | |||
extern logical lsame_(char *, char *); | |||
extern /* Subroutine */ int clasr_(char *, char *, char *, integer *, | |||
extern /* Subroutine */ void clasr_(char *, char *, char *, integer *, | |||
integer *, real *, real *, complex *, integer *), cswap_(integer *, complex *, integer *, complex *, | |||
integer *); | |||
integer maxit; | |||
@@ -888,12 +888,12 @@ f"> */ | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
real thresh, tolmul; | |||
extern /* Subroutine */ int mecago_(); | |||
extern /* Subroutine */ void mecago_(); | |||
logical lquery; | |||
real b11bulge; | |||
logical wantv1t, wantv2t; | |||
real b12bulge, b21bulge, b22bulge, eps, tol; | |||
extern /* Subroutine */ int slartgp_(real *, real *, real *, real *, real | |||
extern /* Subroutine */ void slartgp_(real *, real *, real *, real *, real | |||
*), slartgs_(real *, real *, real *, real *, real *); | |||
@@ -966,7 +966,7 @@ f"> */ | |||
if (*info == 0 && *q == 0) { | |||
lrworkmin = 1; | |||
rwork[1] = (real) lrworkmin; | |||
return 0; | |||
return; | |||
} | |||
/* Compute workspace */ | |||
@@ -991,9 +991,9 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CBBCSD", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants */ | |||
@@ -1086,7 +1086,7 @@ f"> */ | |||
++(*info); | |||
} | |||
} | |||
return 0; | |||
return; | |||
} | |||
iter = iter + imax - imin; | |||
@@ -1800,7 +1800,7 @@ f"> */ | |||
} | |||
return 0; | |||
return; | |||
/* End of CBBCSD */ | |||
@@ -742,7 +742,7 @@ f"> */ | |||
/* > \ingroup complexOTHERcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cbdsqr_(char *uplo, integer *n, integer *ncvt, integer * | |||
/* Subroutine */ void cbdsqr_(char *uplo, integer *n, integer *ncvt, integer * | |||
nru, integer *ncc, real *d__, real *e, complex *vt, integer *ldvt, | |||
complex *u, integer *ldu, complex *c__, integer *ldc, real *rwork, | |||
integer *info) | |||
@@ -761,23 +761,23 @@ f"> */ | |||
real cosl; | |||
integer isub, iter; | |||
real unfl, sinl, cosr, smin, smax, sinr; | |||
extern /* Subroutine */ int slas2_(real *, real *, real *, real *, real *) | |||
extern /* Subroutine */ void slas2_(real *, real *, real *, real *, real *) | |||
; | |||
real f, g, h__; | |||
integer i__, j, m; | |||
real r__; | |||
extern logical lsame_(char *, char *); | |||
real oldcs; | |||
extern /* Subroutine */ int clasr_(char *, char *, char *, integer *, | |||
extern /* Subroutine */ void clasr_(char *, char *, char *, integer *, | |||
integer *, real *, real *, complex *, integer *); | |||
integer oldll; | |||
real shift, sigmn, oldsn; | |||
extern /* Subroutine */ int cswap_(integer *, complex *, integer *, | |||
extern /* Subroutine */ void cswap_(integer *, complex *, integer *, | |||
complex *, integer *); | |||
integer maxit; | |||
real sminl, sigmx; | |||
logical lower; | |||
extern /* Subroutine */ int csrot_(integer *, complex *, integer *, | |||
extern /* Subroutine */ void csrot_(integer *, complex *, integer *, | |||
complex *, integer *, real *, real *), slasq1_(integer *, real *, | |||
real *, real *, integer *), slasv2_(real *, real *, real *, real * | |||
, real *, real *, real *, real *, real *); | |||
@@ -785,10 +785,11 @@ f"> */ | |||
integer ll; | |||
real sn, mu; | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer | |||
*), xerbla_(char *, integer *, ftnlen); | |||
extern /* Subroutine */ void csscal_(integer *, real *, complex *, integer | |||
*); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
real sminoa; | |||
extern /* Subroutine */ int slartg_(real *, real *, real *, real *, real * | |||
extern /* Subroutine */ void slartg_(real *, real *, real *, real *, real * | |||
); | |||
real thresh; | |||
logical rotate; | |||
@@ -846,10 +847,10 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CBDSQR", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
if (*n == 0) { | |||
return 0; | |||
return; | |||
} | |||
if (*n == 1) { | |||
goto L160; | |||
@@ -867,7 +868,7 @@ f"> */ | |||
/* If INFO equals 2, dqds didn't finish, try to finish */ | |||
if (*info != 2) { | |||
return 0; | |||
return; | |||
} | |||
*info = 0; | |||
} | |||
@@ -1492,7 +1493,7 @@ L200: | |||
/* L210: */ | |||
} | |||
L220: | |||
return 0; | |||
return; | |||
/* End of CBDSQR */ | |||
@@ -712,7 +712,7 @@ f"> */ | |||
/* > \ingroup complexGBcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgbbrd_(char *vect, integer *m, integer *n, integer *ncc, | |||
/* Subroutine */ void cgbbrd_(char *vect, integer *m, integer *n, integer *ncc, | |||
integer *kl, integer *ku, complex *ab, integer *ldab, real *d__, | |||
real *e, complex *q, integer *ldq, complex *pt, integer *ldpt, | |||
complex *c__, integer *ldc, complex *work, real *rwork, integer *info) | |||
@@ -725,11 +725,11 @@ f"> */ | |||
/* Local variables */ | |||
integer inca; | |||
real abst; | |||
extern /* Subroutine */ int crot_(integer *, complex *, integer *, | |||
extern /* Subroutine */ void crot_(integer *, complex *, integer *, | |||
complex *, integer *, real *, complex *); | |||
integer i__, j, l; | |||
complex t; | |||
extern /* Subroutine */ int cscal_(integer *, complex *, complex *, | |||
extern /* Subroutine */ void cscal_(integer *, complex *, complex *, | |||
integer *); | |||
extern logical lsame_(char *, char *); | |||
logical wantb, wantc; | |||
@@ -742,10 +742,11 @@ f"> */ | |||
complex rb; | |||
integer ml, nr, mu; | |||
complex rs; | |||
extern /* Subroutine */ int claset_(char *, integer *, integer *, complex | |||
extern /* Subroutine */ void claset_(char *, integer *, integer *, complex | |||
*, complex *, complex *, integer *), clartg_(complex *, | |||
complex *, real *, complex *, complex *), xerbla_(char *, integer | |||
*, ftnlen), clargv_(integer *, complex *, integer *, complex *, | |||
complex *, real *, complex *, complex *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void clargv_(integer *, complex *, integer *, complex *, | |||
integer *, real *, integer *), clartv_(integer *, complex *, | |||
integer *, complex *, integer *, real *, complex *, integer *); | |||
integer kb1, ml0; | |||
@@ -813,7 +814,7 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGBBRD", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
/* Initialize Q and P**H to the unit matrix, if needed */ | |||
@@ -828,7 +829,7 @@ f"> */ | |||
/* Quick return if possible. */ | |||
if (*m == 0 || *n == 0) { | |||
return 0; | |||
return; | |||
} | |||
minmn = f2cmin(*m,*n); | |||
@@ -1237,7 +1238,7 @@ f"> */ | |||
} | |||
/* L120: */ | |||
} | |||
return 0; | |||
return; | |||
/* End of CGBBRD */ | |||
@@ -664,7 +664,7 @@ f"> */ | |||
/* > \ingroup complexGBcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgbcon_(char *norm, integer *n, integer *kl, integer *ku, | |||
/* Subroutine */ void cgbcon_(char *norm, integer *n, integer *kl, integer *ku, | |||
complex *ab, integer *ldab, integer *ipiv, real *anorm, real *rcond, | |||
complex *work, real *rwork, integer *info) | |||
{ | |||
@@ -681,20 +681,20 @@ f"> */ | |||
*, complex *, integer *); | |||
extern logical lsame_(char *, char *); | |||
integer isave[3]; | |||
extern /* Subroutine */ int caxpy_(integer *, complex *, complex *, | |||
extern /* Subroutine */ void caxpy_(integer *, complex *, complex *, | |||
integer *, complex *, integer *); | |||
logical lnoti; | |||
extern /* Subroutine */ int clacn2_(integer *, complex *, complex *, real | |||
extern /* Subroutine */ void clacn2_(integer *, complex *, complex *, real | |||
*, integer *, integer *); | |||
integer kd, lm, jp, ix; | |||
extern integer icamax_(integer *, complex *, integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int clatbs_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void clatbs_(char *, char *, char *, char *, | |||
integer *, integer *, complex *, integer *, complex *, real *, | |||
real *, integer *), xerbla_(char * | |||
, integer *, ftnlen); | |||
real *, integer *); | |||
extern int xerbla_(char * , integer *, ftnlen); | |||
real ainvnm; | |||
extern /* Subroutine */ int csrscl_(integer *, real *, complex *, integer | |||
extern /* Subroutine */ void csrscl_(integer *, real *, complex *, integer | |||
*); | |||
logical onenrm; | |||
char normin[1]; | |||
@@ -739,7 +739,7 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGBCON", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -747,9 +747,9 @@ f"> */ | |||
*rcond = 0.f; | |||
if (*n == 0) { | |||
*rcond = 1.f; | |||
return 0; | |||
return; | |||
} else if (*anorm == 0.f) { | |||
return 0; | |||
return; | |||
} | |||
smlnum = slamch_("Safe minimum"); | |||
@@ -863,7 +863,7 @@ L10: | |||
} | |||
L40: | |||
return 0; | |||
return; | |||
/* End of CGBCON */ | |||
@@ -674,7 +674,7 @@ f"> */ | |||
/* > \ingroup complexGBcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgbequ_(integer *m, integer *n, integer *kl, integer *ku, | |||
/* Subroutine */ void cgbequ_(integer *m, integer *n, integer *kl, integer *ku, | |||
complex *ab, integer *ldab, real *r__, real *c__, real *rowcnd, real | |||
*colcnd, real *amax, integer *info) | |||
{ | |||
@@ -725,7 +725,7 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGBEQU", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -734,7 +734,7 @@ f"> */ | |||
*rowcnd = 1.f; | |||
*colcnd = 1.f; | |||
*amax = 0.f; | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants. */ | |||
@@ -795,7 +795,7 @@ f"> */ | |||
for (i__ = 1; i__ <= i__1; ++i__) { | |||
if (r__[i__] == 0.f) { | |||
*info = i__; | |||
return 0; | |||
return; | |||
} | |||
/* L50: */ | |||
} | |||
@@ -872,7 +872,7 @@ f"> */ | |||
for (j = 1; j <= i__1; ++j) { | |||
if (c__[j] == 0.f) { | |||
*info = *m + j; | |||
return 0; | |||
return; | |||
} | |||
/* L110: */ | |||
} | |||
@@ -895,7 +895,7 @@ f"> */ | |||
*colcnd = f2cmax(rcmin,smlnum) / f2cmin(rcmax,bignum); | |||
} | |||
return 0; | |||
return; | |||
/* End of CGBEQU */ | |||
@@ -681,7 +681,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
/* > \ingroup complexGBcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgbequb_(integer *m, integer *n, integer *kl, integer * | |||
/* Subroutine */ void cgbequb_(integer *m, integer *n, integer *kl, integer * | |||
ku, complex *ab, integer *ldab, real *r__, real *c__, real *rowcnd, | |||
real *colcnd, real *amax, integer *info) | |||
{ | |||
@@ -732,7 +732,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGBEQUB", &i__1, (ftnlen)7); | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible. */ | |||
@@ -741,7 +741,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
*rowcnd = 1.f; | |||
*colcnd = 1.f; | |||
*amax = 0.f; | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants. Assume SMLNUM is a power of the radix. */ | |||
@@ -811,7 +811,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
for (i__ = 1; i__ <= i__1; ++i__) { | |||
if (r__[i__] == 0.f) { | |||
*info = i__; | |||
return 0; | |||
return; | |||
} | |||
/* L50: */ | |||
} | |||
@@ -891,7 +891,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
for (j = 1; j <= i__1; ++j) { | |||
if (c__[j] == 0.f) { | |||
*info = *m + j; | |||
return 0; | |||
return; | |||
} | |||
/* L110: */ | |||
} | |||
@@ -914,7 +914,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
*colcnd = f2cmax(rcmin,smlnum) / f2cmin(rcmax,bignum); | |||
} | |||
return 0; | |||
return; | |||
/* End of CGBEQUB */ | |||
@@ -730,7 +730,7 @@ f"> */ | |||
/* > \ingroup complexGBcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgbrfs_(char *trans, integer *n, integer *kl, integer * | |||
/* Subroutine */ void cgbrfs_(char *trans, integer *n, integer *kl, integer * | |||
ku, integer *nrhs, complex *ab, integer *ldab, complex *afb, integer * | |||
ldafb, integer *ipiv, complex *b, integer *ldb, complex *x, integer * | |||
ldx, real *ferr, real *berr, complex *work, real *rwork, integer * | |||
@@ -747,23 +747,24 @@ f"> */ | |||
real safe1, safe2; | |||
integer i__, j, k; | |||
real s; | |||
extern /* Subroutine */ int cgbmv_(char *, integer *, integer *, integer * | |||
extern /* Subroutine */ void cgbmv_(char *, integer *, integer *, integer * | |||
, integer *, complex *, complex *, integer *, complex *, integer * | |||
, complex *, complex *, integer *); | |||
extern logical lsame_(char *, char *); | |||
integer isave[3]; | |||
extern /* Subroutine */ int ccopy_(integer *, complex *, integer *, | |||
extern /* Subroutine */ void ccopy_(integer *, complex *, integer *, | |||
complex *, integer *), caxpy_(integer *, complex *, complex *, | |||
integer *, complex *, integer *); | |||
integer count; | |||
extern /* Subroutine */ int clacn2_(integer *, complex *, complex *, real | |||
extern /* Subroutine */ void clacn2_(integer *, complex *, complex *, real | |||
*, integer *, integer *); | |||
integer kk; | |||
real xk; | |||
extern real slamch_(char *); | |||
integer nz; | |||
real safmin; | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen), cgbtrs_( | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
extern void cgbtrs_( | |||
char *, integer *, integer *, integer *, integer *, complex *, | |||
integer *, integer *, complex *, integer *, integer *); | |||
logical notran; | |||
@@ -827,7 +828,7 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGBRFS", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -839,7 +840,7 @@ f"> */ | |||
berr[j] = 0.f; | |||
/* L10: */ | |||
} | |||
return 0; | |||
return; | |||
} | |||
if (notran) { | |||
@@ -1078,7 +1079,7 @@ L100: | |||
/* L140: */ | |||
} | |||
return 0; | |||
return; | |||
/* End of CGBRFS */ | |||
@@ -684,7 +684,7 @@ e driver) */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgbsv_(integer *n, integer *kl, integer *ku, integer * | |||
/* Subroutine */ void cgbsv_(integer *n, integer *kl, integer *ku, integer * | |||
nrhs, complex *ab, integer *ldab, integer *ipiv, complex *b, integer * | |||
ldb, integer *info) | |||
{ | |||
@@ -692,9 +692,10 @@ e driver) */ | |||
integer ab_dim1, ab_offset, b_dim1, b_offset, i__1; | |||
/* Local variables */ | |||
extern /* Subroutine */ int cgbtrf_(integer *, integer *, integer *, | |||
integer *, complex *, integer *, integer *, integer *), xerbla_( | |||
char *, integer *, ftnlen), cgbtrs_(char *, integer *, integer *, | |||
extern /* Subroutine */ void cgbtrf_(integer *, integer *, integer *, | |||
integer *, complex *, integer *, integer *, integer *); | |||
extern int xerbla_( char *, integer *, ftnlen); | |||
extern void cgbtrs_(char *, integer *, integer *, | |||
integer *, integer *, complex *, integer *, integer *, complex *, | |||
integer *, integer *); | |||
@@ -737,7 +738,7 @@ e driver) */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGBSV ", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
/* Compute the LU factorization of the band matrix A. */ | |||
@@ -750,7 +751,7 @@ e driver) */ | |||
cgbtrs_("No transpose", n, kl, ku, nrhs, &ab[ab_offset], ldab, &ipiv[ | |||
1], &b[b_offset], ldb, info); | |||
} | |||
return 0; | |||
return; | |||
/* End of CGBSV */ | |||
@@ -893,7 +893,7 @@ f"> */ | |||
/* > \ingroup complexGBsolve */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgbsvx_(char *fact, char *trans, integer *n, integer *kl, | |||
/* Subroutine */ void cgbsvx_(char *fact, char *trans, integer *n, integer *kl, | |||
integer *ku, integer *nrhs, complex *ab, integer *ldab, complex *afb, | |||
integer *ldafb, integer *ipiv, char *equed, real *r__, real *c__, | |||
complex *b, integer *ldb, complex *x, integer *ldx, real *rcond, real | |||
@@ -911,13 +911,13 @@ f"> */ | |||
integer i__, j; | |||
extern logical lsame_(char *, char *); | |||
real rcmin, rcmax, anorm; | |||
extern /* Subroutine */ int ccopy_(integer *, complex *, integer *, | |||
extern /* Subroutine */ void ccopy_(integer *, complex *, integer *, | |||
complex *, integer *); | |||
logical equil; | |||
integer j1, j2; | |||
extern real clangb_(char *, integer *, integer *, integer *, complex *, | |||
integer *, real *); | |||
extern /* Subroutine */ int claqgb_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void claqgb_(integer *, integer *, integer *, | |||
integer *, complex *, integer *, real *, real *, real *, real *, | |||
real *, char *), cgbcon_(char *, integer *, integer *, | |||
integer *, complex *, integer *, integer *, real *, real *, | |||
@@ -925,22 +925,22 @@ f"> */ | |||
real colcnd; | |||
extern real clantb_(char *, char *, char *, integer *, integer *, complex | |||
*, integer *, real *); | |||
extern /* Subroutine */ int cgbequ_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void cgbequ_(integer *, integer *, integer *, | |||
integer *, complex *, integer *, real *, real *, real *, real *, | |||
real *, integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int cgbrfs_(char *, integer *, integer *, integer | |||
extern /* Subroutine */ void cgbrfs_(char *, integer *, integer *, integer | |||
*, integer *, complex *, integer *, complex *, integer *, integer | |||
*, complex *, integer *, complex *, integer *, real *, real *, | |||
complex *, real *, integer *), cgbtrf_(integer *, integer | |||
*, integer *, integer *, complex *, integer *, integer *, integer | |||
*); | |||
logical nofact; | |||
extern /* Subroutine */ int clacpy_(char *, integer *, integer *, complex | |||
*, integer *, complex *, integer *), xerbla_(char *, | |||
integer *, ftnlen); | |||
extern /* Subroutine */ void clacpy_(char *, integer *, integer *, complex | |||
*, integer *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
real bignum; | |||
extern /* Subroutine */ int cgbtrs_(char *, integer *, integer *, integer | |||
extern /* Subroutine */ void cgbtrs_(char *, integer *, integer *, integer | |||
*, integer *, complex *, integer *, integer *, complex *, integer | |||
*, integer *); | |||
integer infequ; | |||
@@ -1080,7 +1080,7 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGBSVX", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
if (equil) { | |||
@@ -1195,7 +1195,7 @@ f"> */ | |||
} | |||
rwork[1] = rpvgrw; | |||
*rcond = 0.f; | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1289,7 +1289,7 @@ f"> */ | |||
} | |||
rwork[1] = rpvgrw; | |||
return 0; | |||
return; | |||
/* End of CGBSVX */ | |||
@@ -1080,7 +1080,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
/* > \ingroup complexGBsolve */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgbsvxx_(char *fact, char *trans, integer *n, integer * | |||
/* Subroutine */ void cgbsvxx_(char *fact, char *trans, integer *n, integer * | |||
kl, integer *ku, integer *nrhs, complex *ab, integer *ldab, complex * | |||
afb, integer *ldafb, integer *ipiv, char *equed, real *r__, real *c__, | |||
complex *b, integer *ldb, complex *x, integer *ldx, real *rcond, | |||
@@ -1102,19 +1102,19 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
extern logical lsame_(char *, char *); | |||
real rcmin, rcmax; | |||
logical equil; | |||
extern /* Subroutine */ int claqgb_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void claqgb_(integer *, integer *, integer *, | |||
integer *, complex *, integer *, real *, real *, real *, real *, | |||
real *, char *); | |||
real colcnd; | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int cgbtrf_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void cgbtrf_(integer *, integer *, integer *, | |||
integer *, complex *, integer *, integer *, integer *); | |||
logical nofact; | |||
extern /* Subroutine */ int clacpy_(char *, integer *, integer *, complex | |||
*, integer *, complex *, integer *), xerbla_(char *, | |||
integer *, ftnlen); | |||
extern /* Subroutine */ void clacpy_(char *, integer *, integer *, complex | |||
*, integer *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
real bignum; | |||
extern /* Subroutine */ int cgbtrs_(char *, integer *, integer *, integer | |||
extern /* Subroutine */ void cgbtrs_(char *, integer *, integer *, integer | |||
*, integer *, complex *, integer *, integer *, complex *, integer | |||
*, integer *); | |||
integer infequ; | |||
@@ -1123,7 +1123,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
logical notran; | |||
real smlnum; | |||
logical rowequ; | |||
extern /* Subroutine */ int clascl2_(integer *, integer *, real *, | |||
extern /* Subroutine */ void clascl2_(integer *, integer *, real *, | |||
complex *, integer *), cgbequb_(integer *, integer *, integer *, | |||
integer *, complex *, integer *, real *, real *, real *, real *, | |||
real *, integer *), cgbrfsx_(char *, char *, integer *, integer *, | |||
@@ -1270,7 +1270,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGBSVXX", &i__1, (ftnlen)7); | |||
return 0; | |||
return; | |||
} | |||
if (equil) { | |||
@@ -1346,7 +1346,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
*rpvgrw = cla_gbrpvgrw_(n, kl, ku, info, &ab[ab_offset], ldab, & | |||
afb[afb_offset], ldafb); | |||
return 0; | |||
return; | |||
} | |||
} | |||
@@ -1379,7 +1379,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
clascl2_(n, nrhs, &r__[1], &x[x_offset], ldx); | |||
} | |||
return 0; | |||
return; | |||
/* End of CGBSVXX */ | |||
@@ -672,7 +672,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgbtf2_(integer *m, integer *n, integer *kl, integer *ku, | |||
/* Subroutine */ void cgbtf2_(integer *m, integer *n, integer *kl, integer *ku, | |||
complex *ab, integer *ldab, integer *ipiv, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -681,7 +681,7 @@ f"> */ | |||
/* Local variables */ | |||
integer i__, j; | |||
extern /* Subroutine */ int cscal_(integer *, complex *, complex *, | |||
extern /* Subroutine */ void cscal_(integer *, complex *, complex *, | |||
integer *), cgeru_(integer *, integer *, complex *, complex *, | |||
integer *, complex *, integer *, complex *, integer *), cswap_( | |||
integer *, complex *, integer *, complex *, integer *); | |||
@@ -728,13 +728,13 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGBTF2", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*m == 0 || *n == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Gaussian elimination with partial pivoting */ | |||
@@ -827,7 +827,7 @@ f"> */ | |||
} | |||
/* L40: */ | |||
} | |||
return 0; | |||
return; | |||
/* End of CGBTF2 */ | |||
@@ -671,7 +671,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgbtrf_(integer *m, integer *n, integer *kl, integer *ku, | |||
/* Subroutine */ void cgbtrf_(integer *m, integer *n, integer *kl, integer *ku, | |||
complex *ab, integer *ldab, integer *ipiv, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -681,7 +681,7 @@ f"> */ | |||
/* Local variables */ | |||
complex temp; | |||
integer i__, j; | |||
extern /* Subroutine */ int cscal_(integer *, complex *, complex *, | |||
extern /* Subroutine */ void cscal_(integer *, complex *, complex *, | |||
integer *), cgemm_(char *, char *, integer *, integer *, integer * | |||
, complex *, complex *, integer *, complex *, integer *, complex * | |||
, complex *, integer *), cgeru_(integer *, | |||
@@ -691,11 +691,11 @@ f"> */ | |||
complex *, integer *); | |||
complex work13[4160] /* was [65][64] */, work31[4160] /* | |||
was [65][64] */; | |||
extern /* Subroutine */ int ctrsm_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void ctrsm_(char *, char *, char *, char *, | |||
integer *, integer *, complex *, complex *, integer *, complex *, | |||
integer *); | |||
integer i2, i3, j2, j3, k2; | |||
extern /* Subroutine */ int cgbtf2_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void cgbtf2_(integer *, integer *, integer *, | |||
integer *, complex *, integer *, integer *, integer *); | |||
integer jb, nb, ii, jj, jm, ip, jp, km, ju, kv; | |||
extern integer icamax_(integer *, complex *, integer *); | |||
@@ -745,13 +745,13 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGBTRF", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*m == 0 || *n == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Determine the block size for this environment */ | |||
@@ -1162,7 +1162,7 @@ f"> */ | |||
} | |||
} | |||
return 0; | |||
return; | |||
/* End of CGBTRF */ | |||
@@ -663,7 +663,7 @@ f"> */ | |||
/* > \ingroup complexGBcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgbtrs_(char *trans, integer *n, integer *kl, integer * | |||
/* Subroutine */ void cgbtrs_(char *trans, integer *n, integer *kl, integer * | |||
ku, integer *nrhs, complex *ab, integer *ldab, integer *ipiv, complex | |||
*b, integer *ldb, integer *info) | |||
{ | |||
@@ -674,7 +674,7 @@ f"> */ | |||
/* Local variables */ | |||
integer i__, j, l; | |||
extern logical lsame_(char *, char *); | |||
extern /* Subroutine */ int cgemv_(char *, integer *, integer *, complex * | |||
extern /* Subroutine */ void cgemv_(char *, integer *, integer *, complex * | |||
, complex *, integer *, complex *, integer *, complex *, complex * | |||
, integer *), cgeru_(integer *, integer *, complex *, | |||
complex *, integer *, complex *, integer *, complex *, integer *), | |||
@@ -683,8 +683,8 @@ f"> */ | |||
integer *, complex *, integer *); | |||
logical lnoti; | |||
integer kd, lm; | |||
extern /* Subroutine */ int clacgv_(integer *, complex *, integer *), | |||
xerbla_(char *, integer *, ftnlen); | |||
extern /* Subroutine */ void clacgv_(integer *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
logical notran; | |||
@@ -730,13 +730,13 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGBTRS", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*n == 0 || *nrhs == 0) { | |||
return 0; | |||
return; | |||
} | |||
kd = *ku + *kl + 1; | |||
@@ -851,7 +851,7 @@ f"> */ | |||
} | |||
} | |||
} | |||
return 0; | |||
return; | |||
/* End of CGBTRS */ | |||
@@ -651,7 +651,7 @@ f"> */ | |||
/* > \ingroup complexGEcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgebak_(char *job, char *side, integer *n, integer *ilo, | |||
/* Subroutine */ void cgebak_(char *job, char *side, integer *n, integer *ilo, | |||
integer *ihi, real *scale, integer *m, complex *v, integer *ldv, | |||
integer *info) | |||
{ | |||
@@ -662,12 +662,13 @@ f"> */ | |||
integer i__, k; | |||
real s; | |||
extern logical lsame_(char *, char *); | |||
extern /* Subroutine */ int cswap_(integer *, complex *, integer *, | |||
extern /* Subroutine */ void cswap_(integer *, complex *, integer *, | |||
complex *, integer *); | |||
logical leftv; | |||
integer ii; | |||
extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer | |||
*), xerbla_(char *, integer *, ftnlen); | |||
extern /* Subroutine */ void csscal_(integer *, real *, complex *, integer | |||
*); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
logical rightv; | |||
@@ -712,19 +713,19 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEBAK", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*n == 0) { | |||
return 0; | |||
return; | |||
} | |||
if (*m == 0) { | |||
return 0; | |||
return; | |||
} | |||
if (lsame_(job, "N")) { | |||
return 0; | |||
return; | |||
} | |||
if (*ilo == *ihi) { | |||
@@ -803,7 +804,7 @@ L50: | |||
} | |||
} | |||
return 0; | |||
return; | |||
/* End of CGEBAK */ | |||
@@ -686,7 +686,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgebal_(char *job, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgebal_(char *job, integer *n, complex *a, integer *lda, | |||
integer *ilo, integer *ihi, real *scale, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -699,15 +699,16 @@ f"> */ | |||
integer i__, j, k, l, m; | |||
real r__, s; | |||
extern logical lsame_(char *, char *); | |||
extern /* Subroutine */ int cswap_(integer *, complex *, integer *, | |||
extern /* Subroutine */ void cswap_(integer *, complex *, integer *, | |||
complex *, integer *); | |||
real sfmin1, sfmin2, sfmax1, sfmax2, ca; | |||
extern real scnrm2_(integer *, complex *, integer *); | |||
real ra; | |||
extern integer icamax_(integer *, complex *, integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer | |||
*), xerbla_(char *, integer *, ftnlen); | |||
extern /* Subroutine */ void csscal_(integer *, real *, complex *, integer | |||
*); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern logical sisnan_(real *); | |||
logical noconv; | |||
integer ica, ira; | |||
@@ -743,7 +744,7 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEBAL", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
k = 1; | |||
@@ -909,7 +910,7 @@ L160: | |||
*info = -3; | |||
i__2 = -(*info); | |||
xerbla_("CGEBAL", &i__2, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
f *= 2.f; | |||
c__ *= 2.f; | |||
@@ -971,7 +972,7 @@ L210: | |||
*ilo = k; | |||
*ihi = l; | |||
return 0; | |||
return; | |||
/* End of CGEBAL */ | |||
@@ -715,7 +715,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgebd2_(integer *m, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgebd2_(integer *m, integer *n, complex *a, integer *lda, | |||
real *d__, real *e, complex *tauq, complex *taup, complex *work, | |||
integer *info) | |||
{ | |||
@@ -726,11 +726,11 @@ f"> */ | |||
/* Local variables */ | |||
integer i__; | |||
complex alpha; | |||
extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex * | |||
extern /* Subroutine */ void clarf_(char *, integer *, integer *, complex * | |||
, integer *, complex *, complex *, integer *, complex *), | |||
clarfg_(integer *, complex *, complex *, integer *, complex *), | |||
clacgv_(integer *, complex *, integer *), xerbla_(char *, integer | |||
*, ftnlen); | |||
clacgv_(integer *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
/* -- LAPACK computational routine (version 3.7.1) -- */ | |||
@@ -766,7 +766,7 @@ f"> */ | |||
if (*info < 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEBD2", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
if (*m >= *n) { | |||
@@ -912,7 +912,7 @@ f"> */ | |||
/* L20: */ | |||
} | |||
} | |||
return 0; | |||
return; | |||
/* End of CGEBD2 */ | |||
@@ -722,7 +722,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgebrd_(integer *m, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgebrd_(integer *m, integer *n, complex *a, integer *lda, | |||
real *d__, real *e, complex *tauq, complex *taup, complex *work, | |||
integer *lwork, integer *info) | |||
{ | |||
@@ -733,15 +733,15 @@ f"> */ | |||
/* Local variables */ | |||
integer i__, j; | |||
extern /* Subroutine */ int cgemm_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cgemm_(char *, char *, integer *, integer *, | |||
integer *, complex *, complex *, integer *, complex *, integer *, | |||
complex *, complex *, integer *); | |||
integer nbmin, iinfo, minmn; | |||
extern /* Subroutine */ int cgebd2_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgebd2_(integer *, integer *, complex *, | |||
integer *, real *, real *, complex *, complex *, complex *, | |||
integer *); | |||
integer nb; | |||
extern /* Subroutine */ int clabrd_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void clabrd_(integer *, integer *, integer *, | |||
complex *, integer *, real *, real *, complex *, complex *, | |||
complex *, integer *, complex *, integer *); | |||
integer nx, ws; | |||
@@ -799,9 +799,9 @@ f"> */ | |||
if (*info < 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEBRD", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -809,7 +809,7 @@ f"> */ | |||
minmn = f2cmin(*m,*n); | |||
if (minmn == 0) { | |||
work[1].r = 1.f, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
} | |||
ws = f2cmax(*m,*n); | |||
@@ -914,7 +914,7 @@ f"> */ | |||
cgebd2_(&i__2, &i__1, &a[i__ + i__ * a_dim1], lda, &d__[i__], &e[i__], & | |||
tauq[i__], &taup[i__], &work[1], &iinfo); | |||
work[1].r = (real) ws, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGEBRD */ | |||
@@ -635,7 +635,7 @@ f"> */ | |||
/* > \ingroup complexGEcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgecon_(char *norm, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgecon_(char *norm, integer *n, complex *a, integer *lda, | |||
real *anorm, real *rcond, complex *work, real *rwork, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -647,7 +647,7 @@ f"> */ | |||
real scale; | |||
extern logical lsame_(char *, char *); | |||
integer isave[3]; | |||
extern /* Subroutine */ int clacn2_(integer *, complex *, complex *, real | |||
extern /* Subroutine */ void clacn2_(integer *, complex *, complex *, real | |||
*, integer *, integer *); | |||
real sl; | |||
integer ix; | |||
@@ -656,7 +656,7 @@ f"> */ | |||
real su; | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
real ainvnm; | |||
extern /* Subroutine */ int clatrs_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void clatrs_(char *, char *, char *, char *, | |||
integer *, complex *, integer *, complex *, real *, real *, | |||
integer *), csrscl_(integer *, | |||
real *, complex *, integer *); | |||
@@ -698,7 +698,7 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGECON", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -706,9 +706,9 @@ f"> */ | |||
*rcond = 0.f; | |||
if (*n == 0) { | |||
*rcond = 1.f; | |||
return 0; | |||
return; | |||
} else if (*anorm == 0.f) { | |||
return 0; | |||
return; | |||
} | |||
smlnum = slamch_("Safe minimum"); | |||
@@ -773,7 +773,7 @@ L10: | |||
} | |||
L20: | |||
return 0; | |||
return; | |||
/* End of CGECON */ | |||
@@ -648,7 +648,7 @@ f"> */ | |||
/* > \ingroup complexGEcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeequ_(integer *m, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgeequ_(integer *m, integer *n, complex *a, integer *lda, | |||
real *r__, real *c__, real *rowcnd, real *colcnd, real *amax, | |||
integer *info) | |||
{ | |||
@@ -694,7 +694,7 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEEQU", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -703,7 +703,7 @@ f"> */ | |||
*rowcnd = 1.f; | |||
*colcnd = 1.f; | |||
*amax = 0.f; | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants. */ | |||
@@ -759,7 +759,7 @@ f"> */ | |||
for (i__ = 1; i__ <= i__1; ++i__) { | |||
if (r__[i__] == 0.f) { | |||
*info = i__; | |||
return 0; | |||
return; | |||
} | |||
/* L50: */ | |||
} | |||
@@ -830,7 +830,7 @@ f"> */ | |||
for (j = 1; j <= i__1; ++j) { | |||
if (c__[j] == 0.f) { | |||
*info = *m + j; | |||
return 0; | |||
return; | |||
} | |||
/* L110: */ | |||
} | |||
@@ -853,7 +853,7 @@ f"> */ | |||
*colcnd = f2cmax(rcmin,smlnum) / f2cmin(rcmax,bignum); | |||
} | |||
return 0; | |||
return; | |||
/* End of CGEEQU */ | |||
@@ -656,7 +656,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
/* > \ingroup complexGEcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeequb_(integer *m, integer *n, complex *a, integer * | |||
/* Subroutine */ void cgeequb_(integer *m, integer *n, complex *a, integer * | |||
lda, real *r__, real *c__, real *rowcnd, real *colcnd, real *amax, | |||
integer *info) | |||
{ | |||
@@ -702,7 +702,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEEQUB", &i__1, (ftnlen)7); | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible. */ | |||
@@ -711,7 +711,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
*rowcnd = 1.f; | |||
*colcnd = 1.f; | |||
*amax = 0.f; | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants. Assume SMLNUM is a power of the radix. */ | |||
@@ -776,7 +776,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
for (i__ = 1; i__ <= i__1; ++i__) { | |||
if (r__[i__] == 0.f) { | |||
*info = i__; | |||
return 0; | |||
return; | |||
} | |||
/* L50: */ | |||
} | |||
@@ -851,7 +851,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
for (j = 1; j <= i__1; ++j) { | |||
if (c__[j] == 0.f) { | |||
*info = *m + j; | |||
return 0; | |||
return; | |||
} | |||
/* L110: */ | |||
} | |||
@@ -874,7 +874,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
*colcnd = f2cmax(rcmin,smlnum) / f2cmin(rcmax,bignum); | |||
} | |||
return 0; | |||
return; | |||
/* End of CGEEQUB */ | |||
@@ -710,7 +710,7 @@ or GE matrices</b> */ | |||
/* > \ingroup complexGEeigen */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgees_(char *jobvs, char *sort, L_fp select, integer *n, | |||
/* Subroutine */ void cgees_(char *jobvs, char *sort, L_fp select, integer *n, | |||
complex *a, integer *lda, integer *sdim, complex *w, complex *vs, | |||
integer *ldvs, complex *work, integer *lwork, real *rwork, logical * | |||
bwork, integer *info) | |||
@@ -725,7 +725,7 @@ or GE matrices</b> */ | |||
real s; | |||
integer icond, ieval; | |||
extern logical lsame_(char *, char *); | |||
extern /* Subroutine */ int ccopy_(integer *, complex *, integer *, | |||
extern /* Subroutine */ void ccopy_(integer *, complex *, integer *, | |||
complex *, integer *), cgebak_(char *, char *, integer *, integer | |||
*, integer *, real *, integer *, complex *, integer *, integer *), cgebal_(char *, integer *, complex *, integer *, | |||
integer *, integer *, real *, integer *), slabad_(real *, | |||
@@ -734,18 +734,18 @@ or GE matrices</b> */ | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *); | |||
real cscale; | |||
extern /* Subroutine */ int cgehrd_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void cgehrd_(integer *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *, integer *), | |||
clascl_(char *, integer *, integer *, real *, real *, integer *, | |||
integer *, complex *, integer *, integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int clacpy_(char *, integer *, integer *, complex | |||
*, integer *, complex *, integer *), xerbla_(char *, | |||
integer *, ftnlen); | |||
extern /* Subroutine */ void clacpy_(char *, integer *, integer *, complex | |||
*, integer *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
real bignum; | |||
extern /* Subroutine */ int chseqr_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void chseqr_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *, integer *), cunghr_(integer | |||
*, integer *, integer *, complex *, integer *, complex *, complex | |||
@@ -844,16 +844,16 @@ or GE matrices</b> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEES ", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*n == 0) { | |||
*sdim = 0; | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants */ | |||
@@ -971,7 +971,7 @@ or GE matrices</b> */ | |||
} | |||
work[1].r = (real) maxwrk, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGEES */ | |||
@@ -752,7 +752,7 @@ f"> */ | |||
/* > \ingroup complexGEeigen */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeesx_(char *jobvs, char *sort, L_fp select, char * | |||
/* Subroutine */ void cgeesx_(char *jobvs, char *sort, L_fp select, char * | |||
sense, integer *n, complex *a, integer *lda, integer *sdim, complex * | |||
w, complex *vs, integer *ldvs, real *rconde, real *rcondv, complex * | |||
work, integer *lwork, real *rwork, logical *bwork, integer *info) | |||
@@ -765,7 +765,7 @@ f"> */ | |||
real anrm; | |||
integer ierr, itau, iwrk, lwrk, i__, icond, ieval; | |||
extern logical lsame_(char *, char *); | |||
extern /* Subroutine */ int ccopy_(integer *, complex *, integer *, | |||
extern /* Subroutine */ void ccopy_(integer *, complex *, integer *, | |||
complex *, integer *), cgebak_(char *, char *, integer *, integer | |||
*, integer *, real *, integer *, complex *, integer *, integer *), cgebal_(char *, integer *, complex *, integer *, | |||
integer *, integer *, real *, integer *), slabad_(real *, | |||
@@ -774,25 +774,25 @@ f"> */ | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *); | |||
real cscale; | |||
extern /* Subroutine */ int cgehrd_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void cgehrd_(integer *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *, integer *), | |||
clascl_(char *, integer *, integer *, real *, real *, integer *, | |||
integer *, complex *, integer *, integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int clacpy_(char *, integer *, integer *, complex | |||
*, integer *, complex *, integer *), xerbla_(char *, | |||
integer *, ftnlen); | |||
extern /* Subroutine */ void clacpy_(char *, integer *, integer *, complex | |||
*, integer *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
real bignum; | |||
extern /* Subroutine */ int slascl_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void slascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, real *, integer *, integer *), chseqr_(char *, char *, integer *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *, complex *, | |||
integer *, integer *), cunghr_(integer *, integer | |||
*, integer *, complex *, integer *, complex *, complex *, integer | |||
*, integer *); | |||
logical wantsb; | |||
extern /* Subroutine */ int ctrsen_(char *, char *, logical *, integer *, | |||
extern /* Subroutine */ void ctrsen_(char *, char *, logical *, integer *, | |||
complex *, integer *, complex *, integer *, complex *, integer *, | |||
real *, real *, complex *, integer *, integer *); | |||
logical wantse; | |||
@@ -906,16 +906,16 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEESX", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*n == 0) { | |||
*sdim = 0; | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants */ | |||
@@ -1054,7 +1054,7 @@ f"> */ | |||
} | |||
work[1].r = (real) maxwrk, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGEESX */ | |||
@@ -695,7 +695,7 @@ ices</b> */ | |||
/* > \ingroup complexGEeigen */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeev_(char *jobvl, char *jobvr, integer *n, complex *a, | |||
/* Subroutine */ void cgeev_(char *jobvl, char *jobvr, integer *n, complex *a, | |||
integer *lda, complex *w, complex *vl, integer *ldvl, complex *vr, | |||
integer *ldvr, complex *work, integer *lwork, real *rwork, integer * | |||
info) | |||
@@ -711,11 +711,11 @@ ices</b> */ | |||
char side[1]; | |||
real anrm; | |||
integer ierr, itau, iwrk, nout, i__, k; | |||
extern /* Subroutine */ int cscal_(integer *, complex *, complex *, | |||
extern /* Subroutine */ void cscal_(integer *, complex *, complex *, | |||
integer *); | |||
extern logical lsame_(char *, char *); | |||
extern real scnrm2_(integer *, complex *, integer *); | |||
extern /* Subroutine */ int cgebak_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cgebak_(char *, char *, integer *, integer *, | |||
integer *, real *, integer *, complex *, integer *, integer *), cgebal_(char *, integer *, complex *, integer *, | |||
integer *, integer *, real *, integer *), slabad_(real *, | |||
real *); | |||
@@ -723,20 +723,21 @@ ices</b> */ | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *); | |||
real cscale; | |||
extern /* Subroutine */ int cgehrd_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void cgehrd_(integer *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *, integer *), | |||
clascl_(char *, integer *, integer *, real *, real *, integer *, | |||
integer *, complex *, integer *, integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer | |||
extern /* Subroutine */ void csscal_(integer *, real *, complex *, integer | |||
*), clacpy_(char *, integer *, integer *, complex *, integer *, | |||
complex *, integer *), xerbla_(char *, integer *, ftnlen); | |||
complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
logical select[1]; | |||
real bignum; | |||
extern integer isamax_(integer *, real *, integer *); | |||
extern /* Subroutine */ int chseqr_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void chseqr_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *, integer *), cunghr_(integer | |||
*, integer *, integer *, complex *, integer *, complex *, complex | |||
@@ -746,7 +747,7 @@ ices</b> */ | |||
real smlnum; | |||
integer hswork, irwork; | |||
logical lquery, wantvr; | |||
extern /* Subroutine */ int ctrevc3_(char *, char *, logical *, integer *, | |||
extern /* Subroutine */ void ctrevc3_(char *, char *, logical *, integer *, | |||
complex *, integer *, complex *, integer *, complex *, integer *, | |||
integer *, integer *, complex *, integer *, real *, integer *, | |||
integer *); | |||
@@ -868,15 +869,15 @@ ices</b> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEEV ", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*n == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants */ | |||
@@ -1111,7 +1112,7 @@ L50: | |||
} | |||
work[1].r = (real) maxwrk, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGEEV */ | |||
@@ -802,7 +802,7 @@ f"> */ | |||
/* > \ingroup complexGEeigen */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeevx_(char *balanc, char *jobvl, char *jobvr, char * | |||
/* Subroutine */ void cgeevx_(char *balanc, char *jobvl, char *jobvr, char * | |||
sense, integer *n, complex *a, integer *lda, complex *w, complex *vl, | |||
integer *ldvl, complex *vr, integer *ldvr, integer *ilo, integer *ihi, | |||
real *scale, real *abnrm, real *rconde, real *rcondv, complex *work, | |||
@@ -818,12 +818,12 @@ f"> */ | |||
char side[1]; | |||
real anrm; | |||
integer ierr, itau, iwrk, nout, i__, k; | |||
extern /* Subroutine */ int cscal_(integer *, complex *, complex *, | |||
extern /* Subroutine */ void cscal_(integer *, complex *, complex *, | |||
integer *); | |||
integer icond; | |||
extern logical lsame_(char *, char *); | |||
extern real scnrm2_(integer *, complex *, integer *); | |||
extern /* Subroutine */ int cgebak_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cgebak_(char *, char *, integer *, integer *, | |||
integer *, real *, integer *, complex *, integer *, integer *), cgebal_(char *, integer *, complex *, integer *, | |||
integer *, integer *, real *, integer *), slabad_(real *, | |||
real *); | |||
@@ -831,22 +831,23 @@ f"> */ | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *); | |||
real cscale; | |||
extern /* Subroutine */ int cgehrd_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void cgehrd_(integer *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *, integer *), | |||
clascl_(char *, integer *, integer *, real *, real *, integer *, | |||
integer *, complex *, integer *, integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer | |||
extern /* Subroutine */ void csscal_(integer *, real *, complex *, integer | |||
*), clacpy_(char *, integer *, integer *, complex *, integer *, | |||
complex *, integer *), xerbla_(char *, integer *, ftnlen); | |||
complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
logical select[1]; | |||
real bignum; | |||
extern /* Subroutine */ int slascl_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void slascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, real *, integer *, integer *); | |||
extern integer isamax_(integer *, real *, integer *); | |||
extern /* Subroutine */ int chseqr_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void chseqr_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *, integer *), cunghr_(integer | |||
*, integer *, integer *, complex *, integer *, complex *, complex | |||
@@ -860,7 +861,7 @@ f"> */ | |||
logical wntsne; | |||
real smlnum; | |||
logical lquery, wantvr, wntsnn, wntsnv; | |||
extern /* Subroutine */ int ctrevc3_(char *, char *, logical *, integer *, | |||
extern /* Subroutine */ void ctrevc3_(char *, char *, logical *, integer *, | |||
complex *, integer *, complex *, integer *, complex *, integer *, | |||
integer *, integer *, complex *, integer *, real *, integer *, | |||
integer *); | |||
@@ -1019,15 +1020,15 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEEVX", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*n == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants */ | |||
@@ -1285,7 +1286,7 @@ L50: | |||
} | |||
work[1].r = (real) maxwrk, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGEEVX */ | |||
@@ -664,7 +664,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgehd2_(integer *n, integer *ilo, integer *ihi, complex * | |||
/* Subroutine */ void cgehd2_(integer *n, integer *ilo, integer *ihi, complex * | |||
a, integer *lda, complex *tau, complex *work, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -674,10 +674,10 @@ f"> */ | |||
/* Local variables */ | |||
integer i__; | |||
complex alpha; | |||
extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex * | |||
extern /* Subroutine */ void clarf_(char *, integer *, integer *, complex * | |||
, integer *, complex *, complex *, integer *, complex *), | |||
clarfg_(integer *, complex *, complex *, integer *, complex *), | |||
xerbla_(char *, integer *, ftnlen); | |||
clarfg_(integer *, complex *, complex *, integer *, complex *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
/* -- LAPACK computational routine (version 3.7.0) -- */ | |||
@@ -712,7 +712,7 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEHD2", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
i__1 = *ihi - 1; | |||
@@ -749,7 +749,7 @@ f"> */ | |||
/* L10: */ | |||
} | |||
return 0; | |||
return; | |||
/* End of CGEHD2 */ | |||
@@ -686,7 +686,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgehrd_(integer *n, integer *ilo, integer *ihi, complex * | |||
/* Subroutine */ void cgehrd_(integer *n, integer *ilo, integer *ihi, complex * | |||
a, integer *lda, complex *tau, complex *work, integer *lwork, integer | |||
*info) | |||
{ | |||
@@ -696,11 +696,11 @@ f"> */ | |||
/* Local variables */ | |||
integer i__, j; | |||
extern /* Subroutine */ int cgemm_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cgemm_(char *, char *, integer *, integer *, | |||
integer *, complex *, complex *, integer *, complex *, integer *, | |||
complex *, complex *, integer *); | |||
integer nbmin, iinfo; | |||
extern /* Subroutine */ int ctrmm_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void ctrmm_(char *, char *, char *, char *, | |||
integer *, integer *, complex *, complex *, integer *, complex *, | |||
integer *), caxpy_(integer *, | |||
complex *, complex *, integer *, complex *, integer *), cgehd2_( | |||
@@ -711,7 +711,7 @@ f"> */ | |||
integer ib; | |||
complex ei; | |||
integer nb, nh; | |||
extern /* Subroutine */ int clarfb_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void clarfb_(char *, char *, char *, char *, | |||
integer *, integer *, integer *, complex *, integer *, complex *, | |||
integer *, complex *, integer *, complex *, integer *); | |||
integer nx; | |||
@@ -771,9 +771,9 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEHRD", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Set elements 1:ILO-1 and IHI:N-1 of TAU to zero */ | |||
@@ -796,7 +796,7 @@ f"> */ | |||
nh = *ihi - *ilo + 1; | |||
if (nh <= 1) { | |||
work[1].r = 1.f, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
} | |||
/* Determine the block size */ | |||
@@ -913,7 +913,7 @@ f"> */ | |||
cgehd2_(n, &i__, ihi, &a[a_offset], lda, &tau[1], &work[1], &iinfo); | |||
work[1].r = (real) lwkopt, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGEHRD */ | |||
@@ -1086,7 +1086,7 @@ f"> */ | |||
/* > drmac@math.hr. Thank you. */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgejsv_(char *joba, char *jobu, char *jobv, char *jobr, | |||
/* Subroutine */ void cgejsv_(char *joba, char *jobu, char *jobv, char *jobr, | |||
char *jobt, char *jobp, integer *m, integer *n, complex *a, integer * | |||
lda, real *sva, complex *u, integer *ldu, complex *v, integer *ldv, | |||
complex *cwork, integer *lwork, real *rwork, integer *lrwork, integer | |||
@@ -1109,24 +1109,24 @@ f"> */ | |||
p, q; | |||
logical jracc; | |||
extern logical lsame_(char *, char *); | |||
extern /* Subroutine */ int sscal_(integer *, real *, real *, integer *); | |||
extern /* Subroutine */ void sscal_(integer *, real *, real *, integer *); | |||
complex ctemp; | |||
real entra, small; | |||
integer iwoff; | |||
real sfmin; | |||
logical lsvec; | |||
extern /* Subroutine */ int ccopy_(integer *, complex *, integer *, | |||
extern /* Subroutine */ void ccopy_(integer *, complex *, integer *, | |||
complex *, integer *), cswap_(integer *, complex *, integer *, | |||
complex *, integer *); | |||
real epsln; | |||
logical rsvec; | |||
integer lwcon, lwlqf; | |||
extern /* Subroutine */ int ctrsm_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void ctrsm_(char *, char *, char *, char *, | |||
integer *, integer *, complex *, complex *, integer *, complex *, | |||
integer *); | |||
integer lwqrf, n1; | |||
logical l2aber; | |||
extern /* Subroutine */ int cgeqp3_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgeqp3_(integer *, integer *, complex *, | |||
integer *, integer *, complex *, complex *, integer *, real *, | |||
integer *); | |||
real condr1, condr2, uscal1, uscal2; | |||
@@ -1134,53 +1134,54 @@ f"> */ | |||
extern real scnrm2_(integer *, complex *, integer *); | |||
logical l2pert; | |||
integer lrwqp3; | |||
extern /* Subroutine */ int clacgv_(integer *, complex *, integer *); | |||
extern /* Subroutine */ void clacgv_(integer *, complex *, integer *); | |||
integer nr; | |||
extern /* Subroutine */ int cgelqf_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgelqf_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *, integer *); | |||
extern integer icamax_(integer *, complex *, integer *); | |||
extern /* Subroutine */ int clascl_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void clascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, complex *, integer *, integer *); | |||
real scalem, sconda; | |||
logical goscal; | |||
real aatmin; | |||
extern real slamch_(char *); | |||
real aatmax; | |||
extern /* Subroutine */ int cgeqrf_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgeqrf_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *, integer *), clacpy_( | |||
char *, integer *, integer *, complex *, integer *, complex *, | |||
integer *), clapmr_(logical *, integer *, integer *, | |||
complex *, integer *, integer *); | |||
logical noscal; | |||
extern /* Subroutine */ int claset_(char *, integer *, integer *, complex | |||
extern /* Subroutine */ void claset_(char *, integer *, integer *, complex | |||
*, complex *, complex *, integer *); | |||
extern integer isamax_(integer *, real *, integer *); | |||
extern /* Subroutine */ int slascl_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void slascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, real *, integer *, integer *), cpocon_(char *, integer *, complex *, integer *, real *, | |||
real *, complex *, real *, integer *), csscal_(integer *, | |||
real *, complex *, integer *), classq_(integer *, complex *, | |||
integer *, real *, real *), xerbla_(char *, integer *, ftnlen), | |||
cgesvj_(char *, char *, char *, integer *, integer *, complex *, | |||
integer *, real *, real *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void cgesvj_(char *, char *, char *, integer *, integer *, complex *, | |||
integer *, real *, integer *, complex *, integer *, complex *, | |||
integer *, real *, integer *, integer *), | |||
claswp_(integer *, complex *, integer *, integer *, integer *, | |||
integer *, real *, integer *, integer *); | |||
extern int claswp_(integer *, complex *, integer *, integer *, integer *, | |||
integer *, integer *); | |||
real entrat; | |||
logical almort; | |||
complex cdummy[1]; | |||
extern /* Subroutine */ int cungqr_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void cungqr_(integer *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *, integer *); | |||
real maxprj; | |||
extern /* Subroutine */ int cunmlq_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cunmlq_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *, integer *); | |||
logical errest; | |||
integer lrwcon; | |||
extern /* Subroutine */ int slassq_(integer *, real *, integer *, real *, | |||
extern /* Subroutine */ void slassq_(integer *, real *, integer *, real *, | |||
real *); | |||
logical transp; | |||
integer minwrk, lwsvdj; | |||
extern /* Subroutine */ int cunmqr_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cunmqr_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *, integer *); | |||
real rdummy[1]; | |||
@@ -1784,13 +1785,13 @@ f"> */ | |||
/* #:( */ | |||
i__1 = -(*info); | |||
xerbla_("CGEJSV", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
cwork[1].r = (real) optwrk, cwork[1].i = 0.f; | |||
cwork[2].r = (real) minwrk, cwork[2].i = 0.f; | |||
rwork[1] = (real) minrwrk; | |||
iwork[1] = f2cmax(4,miniwrk); | |||
return 0; | |||
return; | |||
} | |||
/* Quick return for void matrix (Y3K safe) */ | |||
@@ -1807,7 +1808,7 @@ f"> */ | |||
rwork[5] = 0.f; | |||
rwork[6] = 0.f; | |||
rwork[7] = 0.f; | |||
return 0; | |||
return; | |||
} | |||
/* Determine whether the matrix U should be M x N or M x M */ | |||
@@ -1847,7 +1848,7 @@ f"> */ | |||
*info = -9; | |||
i__2 = -(*info); | |||
xerbla_("CGEJSV", &i__2, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
aaqq = sqrt(aaqq); | |||
if (aapp < big / aaqq && noscal) { | |||
@@ -1909,7 +1910,7 @@ f"> */ | |||
iwork[2] = 0; | |||
iwork[3] = 0; | |||
iwork[4] = -1; | |||
return 0; | |||
return; | |||
} | |||
/* Issue warning if denormalized column norms detected. Override the */ | |||
@@ -1976,7 +1977,7 @@ f"> */ | |||
rwork[6] = 0.f; | |||
rwork[7] = 0.f; | |||
} | |||
return 0; | |||
return; | |||
} | |||
@@ -3547,6 +3548,6 @@ L3302: | |||
iwork[4] = -1; | |||
} | |||
return 0; | |||
return; | |||
} /* cgejsv_ */ | |||
@@ -681,7 +681,7 @@ static integer c__2 = 2; | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgelq_(integer *m, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgelq_(integer *m, integer *n, complex *a, integer *lda, | |||
complex *t, integer *tsize, complex *work, integer *lwork, integer * | |||
info) | |||
{ | |||
@@ -694,11 +694,11 @@ static integer c__2 = 2; | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
extern /* Subroutine */ int cgelqt_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void cgelqt_(integer *, integer *, integer *, | |||
complex *, integer *, complex *, integer *, complex *, integer *); | |||
logical lminws, lquery; | |||
integer mintsz; | |||
extern /* Subroutine */ int claswlq_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void claswlq_(integer *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, integer *, complex *, | |||
integer *, integer *); | |||
@@ -839,15 +839,15 @@ static integer c__2 = 2; | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGELQ", &i__1, (ftnlen)5); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (f2cmin(*m,*n) == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* The LQ Decomposition */ | |||
@@ -861,7 +861,7 @@ static integer c__2 = 2; | |||
work[1].r = (real) lwreq, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGELQ */ | |||
@@ -639,7 +639,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgelq2_(integer *m, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgelq2_(integer *m, integer *n, complex *a, integer *lda, | |||
complex *tau, complex *work, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -648,11 +648,11 @@ f"> */ | |||
/* Local variables */ | |||
integer i__, k; | |||
complex alpha; | |||
extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex * | |||
extern /* Subroutine */ void clarf_(char *, integer *, integer *, complex * | |||
, integer *, complex *, complex *, integer *, complex *), | |||
clarfg_(integer *, complex *, complex *, integer *, complex *), | |||
clacgv_(integer *, complex *, integer *), xerbla_(char *, integer | |||
*, ftnlen); | |||
clacgv_(integer *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
/* -- LAPACK computational routine (version 3.9.0) -- */ | |||
@@ -685,7 +685,7 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGELQ2", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
k = f2cmin(*m,*n); | |||
@@ -721,7 +721,7 @@ f"> */ | |||
clacgv_(&i__2, &a[i__ + i__ * a_dim1], lda); | |||
/* L10: */ | |||
} | |||
return 0; | |||
return; | |||
/* End of CGELQ2 */ | |||
@@ -659,7 +659,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgelqf_(integer *m, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgelqf_(integer *m, integer *n, complex *a, integer *lda, | |||
complex *tau, complex *work, integer *lwork, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -667,15 +667,16 @@ f"> */ | |||
/* Local variables */ | |||
integer i__, k, nbmin, iinfo; | |||
extern /* Subroutine */ int cgelq2_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgelq2_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *); | |||
integer ib, nb; | |||
extern /* Subroutine */ int clarfb_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void clarfb_(char *, char *, char *, char *, | |||
integer *, integer *, integer *, complex *, integer *, complex *, | |||
integer *, complex *, integer *, complex *, integer *); | |||
integer nx; | |||
extern /* Subroutine */ int clarft_(char *, char *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *), xerbla_(char *, integer *, ftnlen); | |||
extern /* Subroutine */ void clarft_(char *, char *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
integer ldwork, lwkopt; | |||
@@ -720,9 +721,9 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGELQF", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -730,7 +731,7 @@ f"> */ | |||
k = f2cmin(*m,*n); | |||
if (k == 0) { | |||
work[1].r = 1.f, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
} | |||
nbmin = 2; | |||
@@ -815,7 +816,7 @@ f"> */ | |||
} | |||
work[1].r = (real) iws, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGELQF */ | |||
@@ -630,7 +630,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgelqt_(integer *m, integer *n, integer *mb, complex *a, | |||
/* Subroutine */ void cgelqt_(integer *m, integer *n, integer *mb, complex *a, | |||
integer *lda, complex *t, integer *ldt, complex *work, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -638,10 +638,11 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
/* Local variables */ | |||
integer i__, k, iinfo, ib; | |||
extern /* Subroutine */ int clarfb_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void clarfb_(char *, char *, char *, char *, | |||
integer *, integer *, integer *, complex *, integer *, complex *, | |||
integer *, complex *, integer *, complex *, integer *), xerbla_(char *, integer *, ftnlen), | |||
cgelqt3_(integer *, integer *, complex *, integer *, complex *, | |||
integer *, complex *, integer *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void cgelqt3_(integer *, integer *, complex *, integer *, complex *, | |||
integer *, integer *); | |||
@@ -681,14 +682,14 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGELQT", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
k = f2cmin(*m,*n); | |||
if (k == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Blocked loop of length K */ | |||
@@ -717,7 +718,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
i__ * a_dim1], lda, &work[1], &i__5); | |||
} | |||
} | |||
return 0; | |||
return; | |||
/* End of CGELQT */ | |||
@@ -627,7 +627,7 @@ static complex c_b1 = {1.f,0.f}; | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgelqt3_(integer *m, integer *n, complex *a, integer * | |||
/* Subroutine */ void cgelqt3_(integer *m, integer *n, complex *a, integer * | |||
lda, complex *t, integer *ldt, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -636,16 +636,17 @@ static complex c_b1 = {1.f,0.f}; | |||
/* Local variables */ | |||
integer i__, j; | |||
extern /* Subroutine */ int cgemm_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cgemm_(char *, char *, integer *, integer *, | |||
integer *, complex *, complex *, integer *, complex *, integer *, | |||
complex *, complex *, integer *); | |||
integer iinfo; | |||
extern /* Subroutine */ int ctrmm_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void ctrmm_(char *, char *, char *, char *, | |||
integer *, integer *, complex *, complex *, integer *, complex *, | |||
integer *); | |||
integer i1, j1, m1, m2; | |||
extern /* Subroutine */ int clarfg_(integer *, complex *, complex *, | |||
integer *, complex *), xerbla_(char *, integer *, ftnlen); | |||
extern /* Subroutine */ void clarfg_(integer *, complex *, complex *, | |||
integer *, complex *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
/* -- LAPACK computational routine (version 3.8.0) -- */ | |||
@@ -679,7 +680,7 @@ static complex c_b1 = {1.f,0.f}; | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGELQT3", &i__1, (ftnlen)7); | |||
return 0; | |||
return; | |||
} | |||
if (*m == 1) { | |||
@@ -793,7 +794,7 @@ static complex c_b1 = {1.f,0.f}; | |||
} | |||
return 0; | |||
return; | |||
/* End of CGELQT3 */ | |||
@@ -697,7 +697,7 @@ static integer c__0 = 0; | |||
/* > \ingroup complexGEsolve */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgels_(char *trans, integer *m, integer *n, integer * | |||
/* Subroutine */ void cgels_(char *trans, integer *m, integer *n, integer * | |||
nrhs, complex *a, integer *lda, complex *b, integer *ldb, complex * | |||
work, integer *lwork, integer *info) | |||
{ | |||
@@ -714,24 +714,25 @@ static integer c__0 = 0; | |||
integer wsize; | |||
real rwork[1]; | |||
integer nb; | |||
extern /* Subroutine */ int slabad_(real *, real *); | |||
extern /* Subroutine */ void slabad_(real *, real *); | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *); | |||
integer mn; | |||
extern /* Subroutine */ int cgelqf_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgelqf_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *, integer *), clascl_( | |||
char *, integer *, integer *, real *, real *, integer *, integer * | |||
, complex *, integer *, integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int cgeqrf_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgeqrf_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *, integer *), claset_( | |||
char *, integer *, integer *, complex *, complex *, complex *, | |||
integer *), xerbla_(char *, integer *, ftnlen); | |||
integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
integer scllen; | |||
real bignum; | |||
extern /* Subroutine */ int cunmlq_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cunmlq_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *, integer *), cunmqr_(char *, | |||
char *, integer *, integer *, integer *, complex *, integer *, | |||
@@ -840,9 +841,9 @@ static integer c__0 = 0; | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGELS ", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -852,7 +853,7 @@ static integer c__0 = 0; | |||
if (f2cmin(i__1,*nrhs) == 0) { | |||
i__1 = f2cmax(*m,*n); | |||
claset_("Full", &i__1, nrhs, &c_b1, &c_b1, &b[b_offset], ldb); | |||
return 0; | |||
return; | |||
} | |||
/* Get machine parameters */ | |||
@@ -939,7 +940,7 @@ static integer c__0 = 0; | |||
, lda, &b[b_offset], ldb, info); | |||
if (*info > 0) { | |||
return 0; | |||
return; | |||
} | |||
scllen = *n; | |||
@@ -954,7 +955,7 @@ static integer c__0 = 0; | |||
a_offset], lda, &b[b_offset], ldb, info); | |||
if (*info > 0) { | |||
return 0; | |||
return; | |||
} | |||
/* B(N+1:M,1:NRHS) = ZERO */ | |||
@@ -1002,7 +1003,7 @@ static integer c__0 = 0; | |||
, lda, &b[b_offset], ldb, info); | |||
if (*info > 0) { | |||
return 0; | |||
return; | |||
} | |||
/* B(M+1:N,1:NRHS) = 0 */ | |||
@@ -1047,7 +1048,7 @@ static integer c__0 = 0; | |||
a_offset], lda, &b[b_offset], ldb, info); | |||
if (*info > 0) { | |||
return 0; | |||
return; | |||
} | |||
scllen = *m; | |||
@@ -1077,7 +1078,7 @@ L50: | |||
r__1 = (real) wsize; | |||
work[1].r = r__1, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGELS */ | |||
@@ -744,7 +744,7 @@ f"> */ | |||
/* > Osni Marques, LBNL/NERSC, USA \n */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgelsd_(integer *m, integer *n, integer *nrhs, complex * | |||
/* Subroutine */ void cgelsd_(integer *m, integer *n, integer *nrhs, complex * | |||
a, integer *lda, complex *b, integer *ldb, real *s, real *rcond, | |||
integer *rank, complex *work, integer *lwork, real *rwork, integer * | |||
iwork, integer *info) | |||
@@ -757,13 +757,13 @@ f"> */ | |||
integer itau, nlvl, iascl, ibscl; | |||
real sfmin; | |||
integer minmn, maxmn, itaup, itauq, mnthr, nwork, ie, il; | |||
extern /* Subroutine */ int cgebrd_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgebrd_(integer *, integer *, complex *, | |||
integer *, real *, real *, complex *, complex *, complex *, | |||
integer *, integer *), slabad_(real *, real *); | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *); | |||
integer mm; | |||
extern /* Subroutine */ int cgelqf_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgelqf_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *, integer *), clalsd_( | |||
char *, integer *, integer *, integer *, real *, real *, complex * | |||
, integer *, real *, integer *, complex *, real *, integer *, | |||
@@ -771,13 +771,14 @@ f"> */ | |||
real *, integer *, integer *, complex *, integer *, integer *), cgeqrf_(integer *, integer *, complex *, integer *, | |||
complex *, complex *, integer *, integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int clacpy_(char *, integer *, integer *, complex | |||
extern /* Subroutine */ void clacpy_(char *, integer *, integer *, complex | |||
*, integer *, complex *, integer *), claset_(char *, | |||
integer *, integer *, complex *, complex *, complex *, integer *), xerbla_(char *, integer *, ftnlen); | |||
integer *, integer *, complex *, complex *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
real bignum; | |||
extern /* Subroutine */ int slascl_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void slascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, real *, integer *, integer *), cunmbr_(char *, char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *, integer *), slaset_( | |||
@@ -785,7 +786,7 @@ f"> */ | |||
complex *, integer *, complex *, complex *, integer *, complex *, | |||
integer *, integer *); | |||
integer ldwork; | |||
extern /* Subroutine */ int cunmqr_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cunmqr_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *, integer *); | |||
integer liwork, minwrk, maxwrk; | |||
@@ -994,16 +995,16 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGELSD", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible. */ | |||
if (*m == 0 || *n == 0) { | |||
*rank = 0; | |||
return 0; | |||
return; | |||
} | |||
/* Get machine parameters. */ | |||
@@ -1299,7 +1300,7 @@ L10: | |||
work[1].r = (real) maxwrk, work[1].i = 0.f; | |||
iwork[1] = liwork; | |||
rwork[1] = (real) lrwork; | |||
return 0; | |||
return; | |||
/* End of CGELSD */ | |||
@@ -696,7 +696,7 @@ f"> */ | |||
/* > \ingroup complexGEsolve */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgelss_(integer *m, integer *n, integer *nrhs, complex * | |||
/* Subroutine */ void cgelss_(integer *m, integer *n, integer *nrhs, complex * | |||
a, integer *lda, complex *b, integer *ldb, real *s, real *rcond, | |||
integer *rank, complex *work, integer *lwork, real *rwork, integer * | |||
info) | |||
@@ -710,41 +710,43 @@ f"> */ | |||
integer itau, lwork_cgebrd__, lwork_cgelqf__, lwork_cgeqrf__, | |||
lwork_cungbr__, lwork_cunmbr__, i__, lwork_cunmlq__, | |||
lwork_cunmqr__; | |||
extern /* Subroutine */ int cgemm_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cgemm_(char *, char *, integer *, integer *, | |||
integer *, complex *, complex *, integer *, complex *, integer *, | |||
complex *, complex *, integer *); | |||
integer iascl, ibscl; | |||
extern /* Subroutine */ int cgemv_(char *, integer *, integer *, complex * | |||
extern /* Subroutine */ void cgemv_(char *, integer *, integer *, complex * | |||
, complex *, integer *, complex *, integer *, complex *, complex * | |||
, integer *); | |||
integer chunk; | |||
real sfmin; | |||
extern /* Subroutine */ int ccopy_(integer *, complex *, integer *, | |||
extern /* Subroutine */ void ccopy_(integer *, complex *, integer *, | |||
complex *, integer *); | |||
integer minmn, maxmn, itaup, itauq, mnthr, iwork, bl, ie, il; | |||
extern /* Subroutine */ int cgebrd_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgebrd_(integer *, integer *, complex *, | |||
integer *, real *, real *, complex *, complex *, complex *, | |||
integer *, integer *), slabad_(real *, real *); | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *); | |||
integer mm; | |||
extern /* Subroutine */ int cgelqf_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgelqf_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *, integer *), clascl_( | |||
char *, integer *, integer *, real *, real *, integer *, integer * | |||
, complex *, integer *, integer *), cgeqrf_(integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int clacpy_(char *, integer *, integer *, complex | |||
extern /* Subroutine */ void clacpy_(char *, integer *, integer *, complex | |||
*, integer *, complex *, integer *), claset_(char *, | |||
integer *, integer *, complex *, complex *, complex *, integer *), xerbla_(char *, integer *, ftnlen), cbdsqr_(char *, | |||
integer *, integer *, complex *, complex *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void cbdsqr_(char *, | |||
integer *, integer *, integer *, integer *, real *, real *, | |||
complex *, integer *, complex *, integer *, complex *, integer *, | |||
real *, integer *); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
real bignum; | |||
extern /* Subroutine */ int cungbr_(char *, integer *, integer *, integer | |||
extern /* Subroutine */ void cungbr_(char *, integer *, integer *, integer | |||
*, complex *, integer *, complex *, complex *, integer *, integer | |||
*), slascl_(char *, integer *, integer *, real *, real *, | |||
integer *, integer *, real *, integer *, integer *), | |||
@@ -756,7 +758,7 @@ f"> */ | |||
char *, integer *, integer *, integer *, complex *, integer *, | |||
complex *, complex *, integer *, complex *, integer *, integer *); | |||
integer ldwork; | |||
extern /* Subroutine */ int cunmqr_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cunmqr_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *, integer *); | |||
integer minwrk, maxwrk; | |||
@@ -963,16 +965,16 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGELSS", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*m == 0 || *n == 0) { | |||
*rank = 0; | |||
return 0; | |||
return; | |||
} | |||
/* Get machine parameters */ | |||
@@ -1431,7 +1433,7 @@ f"> */ | |||
} | |||
L70: | |||
work[1].r = (real) maxwrk, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGELSS */ | |||
@@ -710,7 +710,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgelst_(char *trans, integer *m, integer *n, integer * | |||
/* Subroutine */ void cgelst_(char *trans, integer *m, integer *n, integer * | |||
nrhs, complex *a, integer *lda, complex *b, integer *ldb, complex * | |||
work, integer *lwork, integer *info) | |||
{ | |||
@@ -727,29 +727,30 @@ f"> */ | |||
integer nbmin; | |||
real rwork[1]; | |||
integer lwopt, nb; | |||
extern /* Subroutine */ int slabad_(real *, real *); | |||
extern /* Subroutine */ void slabad_(real *, real *); | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *); | |||
integer mn; | |||
extern /* Subroutine */ int clascl_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void clascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, complex *, integer *, integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int claset_(char *, integer *, integer *, complex | |||
*, complex *, complex *, integer *), xerbla_(char *, | |||
integer *); | |||
extern /* Subroutine */ void claset_(char *, integer *, integer *, complex | |||
*, complex *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
extern /* Subroutine */ int cgelqt_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void cgelqt_(integer *, integer *, integer *, | |||
complex *, integer *, complex *, integer *, complex *, integer *); | |||
integer scllen; | |||
real bignum; | |||
extern /* Subroutine */ int cgeqrt_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void cgeqrt_(integer *, integer *, integer *, | |||
complex *, integer *, complex *, integer *, complex *, integer *); | |||
integer mnnrhs; | |||
real smlnum; | |||
logical lquery; | |||
extern /* Subroutine */ int ctrtrs_(char *, char *, char *, integer *, | |||
integer *, complex *, integer *, complex *, integer *, integer *), cgemlqt_(char *, char *, integer *, | |||
integer *, complex *, integer *, complex *, integer *, integer *); | |||
extern void cgemlqt_(char *, char *, integer *, | |||
integer *, integer *, integer *, complex *, integer *, complex *, | |||
integer *, complex *, integer *, complex *, integer *), cgemqrt_(char *, char *, integer *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, integer *, complex *, | |||
@@ -826,10 +827,10 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGELST ", &i__1); | |||
return 0; | |||
xerbla_("CGELST ", &i__1, 6); | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -841,7 +842,7 @@ f"> */ | |||
claset_("Full", &i__1, nrhs, &c_b1, &c_b1, &b[b_offset], ldb); | |||
r__1 = (real) lwopt; | |||
work[1].r = r__1, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
} | |||
/* *GEQRT and *GELQT routines cannot accept NB larger than f2cmin(M,N) */ | |||
@@ -901,7 +902,7 @@ f"> */ | |||
claset_("Full", &i__1, nrhs, &c_b1, &c_b1, &b[b_offset], ldb); | |||
r__1 = (real) lwopt; | |||
work[1].r = r__1, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
} | |||
brow = *m; | |||
@@ -956,7 +957,7 @@ f"> */ | |||
, lda, &b[b_offset], ldb, info); | |||
if (*info > 0) { | |||
return 0; | |||
return; | |||
} | |||
scllen = *n; | |||
@@ -975,7 +976,7 @@ f"> */ | |||
a_offset], lda, &b[b_offset], ldb, info); | |||
if (*info > 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Block 2: Zero out all rows below the N-th row in B: */ | |||
@@ -1026,7 +1027,7 @@ f"> */ | |||
, lda, &b[b_offset], ldb, info); | |||
if (*info > 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Block 2: Zero out all rows below the M-th row in B: */ | |||
@@ -1071,7 +1072,7 @@ f"> */ | |||
a_offset], lda, &b[b_offset], ldb, info); | |||
if (*info > 0) { | |||
return 0; | |||
return; | |||
} | |||
scllen = *m; | |||
@@ -1100,7 +1101,7 @@ f"> */ | |||
r__1 = (real) lwopt; | |||
work[1].r = r__1, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGELST */ | |||
@@ -727,7 +727,7 @@ f"> */ | |||
/* > G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain \n */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgelsy_(integer *m, integer *n, integer *nrhs, complex * | |||
/* Subroutine */ void cgelsy_(integer *m, integer *n, integer *nrhs, complex * | |||
a, integer *lda, complex *b, integer *ldb, integer *jpvt, real *rcond, | |||
integer *rank, complex *work, integer *lwork, real *rwork, integer * | |||
info) | |||
@@ -740,45 +740,45 @@ f"> */ | |||
/* Local variables */ | |||
real anrm, bnrm, smin, smax; | |||
integer i__, j, iascl, ibscl; | |||
extern /* Subroutine */ int ccopy_(integer *, complex *, integer *, | |||
extern /* Subroutine */ void ccopy_(integer *, complex *, integer *, | |||
complex *, integer *); | |||
integer ismin, ismax; | |||
complex c1, c2; | |||
extern /* Subroutine */ int ctrsm_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void ctrsm_(char *, char *, char *, char *, | |||
integer *, integer *, complex *, complex *, integer *, complex *, | |||
integer *), claic1_(integer *, | |||
integer *, complex *, real *, complex *, complex *, real *, | |||
complex *, complex *); | |||
real wsize; | |||
complex s1, s2; | |||
extern /* Subroutine */ int cgeqp3_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgeqp3_(integer *, integer *, complex *, | |||
integer *, integer *, complex *, complex *, integer *, real *, | |||
integer *); | |||
integer nb; | |||
extern /* Subroutine */ int slabad_(real *, real *); | |||
extern /* Subroutine */ void slabad_(real *, real *); | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *); | |||
integer mn; | |||
extern /* Subroutine */ int clascl_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void clascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, complex *, integer *, integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int claset_(char *, integer *, integer *, complex | |||
*, complex *, complex *, integer *), xerbla_(char *, | |||
integer *, ftnlen); | |||
extern /* Subroutine */ void claset_(char *, integer *, integer *, complex | |||
*, complex *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
real bignum; | |||
integer nb1, nb2, nb3, nb4; | |||
extern /* Subroutine */ int cunmqr_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cunmqr_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *, integer *); | |||
real sminpr, smaxpr, smlnum; | |||
extern /* Subroutine */ int cunmrz_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cunmrz_(char *, char *, integer *, integer *, | |||
integer *, integer *, complex *, integer *, complex *, complex *, | |||
integer *, complex *, integer *, integer *); | |||
integer lwkopt; | |||
logical lquery; | |||
extern /* Subroutine */ int ctzrzf_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void ctzrzf_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *, integer *); | |||
@@ -854,9 +854,9 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGELSY", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -865,7 +865,7 @@ f"> */ | |||
i__1 = f2cmin(*m,*n); | |||
if (f2cmin(i__1,*nrhs) == 0) { | |||
*rank = 0; | |||
return 0; | |||
return; | |||
} | |||
/* Get machine parameters */ | |||
@@ -1082,7 +1082,7 @@ L70: | |||
q__1.r = (real) lwkopt, q__1.i = 0.f; | |||
work[1].r = q__1.r, work[1].i = q__1.i; | |||
return 0; | |||
return; | |||
/* End of CGELSY */ | |||
@@ -673,7 +673,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgemlq_(char *side, char *trans, integer *m, integer *n, | |||
/* Subroutine */ void cgemlq_(char *side, char *trans, integer *m, integer *n, | |||
integer *k, complex *a, integer *lda, complex *t, integer *tsize, | |||
complex *c__, integer *ldc, complex *work, integer *lwork, integer * | |||
info) | |||
@@ -684,7 +684,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
/* Local variables */ | |||
logical left, tran; | |||
extern /* Subroutine */ int clamswlq_(char *, char *, integer *, integer * | |||
extern /* Subroutine */ void clamswlq_(char *, char *, integer *, integer * | |||
, integer *, integer *, integer *, complex *, integer *, complex * | |||
, integer *, complex *, integer *, complex *, integer *, integer * | |||
); | |||
@@ -693,7 +693,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
integer mb, nb, mn, lw, nblcks; | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
logical notran, lquery; | |||
extern /* Subroutine */ int cgemlqt_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cgemlqt_(char *, char *, integer *, integer *, | |||
integer *, integer *, complex *, integer *, complex *, integer *, | |||
complex *, integer *, complex *, integer *); | |||
@@ -775,9 +775,9 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEMLQ", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -785,7 +785,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
/* Computing MIN */ | |||
i__1 = f2cmin(*m,*n); | |||
if (f2cmin(i__1,*k) == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Computing MAX */ | |||
@@ -802,7 +802,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
r__1 = (real) lw; | |||
work[1].r = r__1, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGEMLQ */ | |||
@@ -658,7 +658,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
/* > \ingroup doubleGEcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgemlqt_(char *side, char *trans, integer *m, integer *n, | |||
/* Subroutine */ void cgemlqt_(char *side, char *trans, integer *m, integer *n, | |||
integer *k, integer *mb, complex *v, integer *ldv, complex *t, | |||
integer *ldt, complex *c__, integer *ldc, complex *work, integer * | |||
info) | |||
@@ -673,9 +673,10 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
extern logical lsame_(char *, char *); | |||
logical right; | |||
integer ib, kf; | |||
extern /* Subroutine */ int clarfb_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void clarfb_(char *, char *, char *, char *, | |||
integer *, integer *, integer *, complex *, integer *, complex *, | |||
integer *, complex *, integer *, complex *, integer *), xerbla_(char *, integer *, ftnlen); | |||
integer *, complex *, integer *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
logical notran; | |||
integer ldwork; | |||
@@ -737,12 +738,12 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEMLQT", &i__1, (ftnlen)7); | |||
return 0; | |||
return; | |||
} | |||
if (*m == 0 || *n == 0 || *k == 0) { | |||
return 0; | |||
return; | |||
} | |||
if (left && notran) { | |||
@@ -803,7 +804,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
} | |||
return 0; | |||
return; | |||
/* End of CGEMLQT */ | |||
@@ -675,7 +675,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgemqr_(char *side, char *trans, integer *m, integer *n, | |||
/* Subroutine */ void cgemqr_(char *side, char *trans, integer *m, integer *n, | |||
integer *k, complex *a, integer *lda, complex *t, integer *tsize, | |||
complex *c__, integer *ldc, complex *work, integer *lwork, integer * | |||
info) | |||
@@ -685,7 +685,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
/* Local variables */ | |||
logical left, tran; | |||
extern /* Subroutine */ int clamtsqr_(char *, char *, integer *, integer * | |||
extern /* Subroutine */ void clamtsqr_(char *, char *, integer *, integer * | |||
, integer *, integer *, integer *, complex *, integer *, complex * | |||
, integer *, complex *, integer *, complex *, integer *, integer * | |||
); | |||
@@ -694,7 +694,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
integer mb, nb, mn, lw, nblcks; | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
logical notran, lquery; | |||
extern /* Subroutine */ int cgemqrt_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cgemqrt_(char *, char *, integer *, integer *, | |||
integer *, integer *, complex *, integer *, complex *, integer *, | |||
complex *, integer *, complex *, integer *); | |||
@@ -775,9 +775,9 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEMQR", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -785,7 +785,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
/* Computing MIN */ | |||
i__1 = f2cmin(*m,*n); | |||
if (f2cmin(i__1,*k) == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Computing MAX */ | |||
@@ -801,7 +801,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
work[1].r = (real) lw, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGEMQR */ | |||
@@ -676,7 +676,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
/* > \ingroup complexGEcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgemqrt_(char *side, char *trans, integer *m, integer *n, | |||
/* Subroutine */ void cgemqrt_(char *side, char *trans, integer *m, integer *n, | |||
integer *k, integer *nb, complex *v, integer *ldv, complex *t, | |||
integer *ldt, complex *c__, integer *ldc, complex *work, integer * | |||
info) | |||
@@ -691,9 +691,10 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
extern logical lsame_(char *, char *); | |||
logical right; | |||
integer ib, kf; | |||
extern /* Subroutine */ int clarfb_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void clarfb_(char *, char *, char *, char *, | |||
integer *, integer *, integer *, complex *, integer *, complex *, | |||
integer *, complex *, integer *, complex *, integer *), xerbla_(char *, integer *, ftnlen); | |||
integer *, complex *, integer *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
logical notran; | |||
integer ldwork; | |||
@@ -757,12 +758,12 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEMQRT", &i__1, (ftnlen)7); | |||
return 0; | |||
return; | |||
} | |||
if (*m == 0 || *n == 0 || *k == 0) { | |||
return 0; | |||
return; | |||
} | |||
if (left && tran) { | |||
@@ -823,7 +824,7 @@ static inline void zdotu_(doublecomplex *z, integer *n_, doublecomplex *x, integ | |||
} | |||
return 0; | |||
return; | |||
/* End of CGEMQRT */ | |||
@@ -637,7 +637,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeql2_(integer *m, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgeql2_(integer *m, integer *n, complex *a, integer *lda, | |||
complex *tau, complex *work, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -647,10 +647,10 @@ f"> */ | |||
/* Local variables */ | |||
integer i__, k; | |||
complex alpha; | |||
extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex * | |||
extern /* Subroutine */ void clarf_(char *, integer *, integer *, complex * | |||
, integer *, complex *, complex *, integer *, complex *), | |||
clarfg_(integer *, complex *, complex *, integer *, complex *), | |||
xerbla_(char *, integer *, ftnlen); | |||
clarfg_(integer *, complex *, complex *, integer *, complex *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
/* -- LAPACK computational routine (version 3.7.0) -- */ | |||
@@ -683,7 +683,7 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEQL2", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
k = f2cmin(*m,*n); | |||
@@ -712,7 +712,7 @@ f"> */ | |||
a[i__1].r = alpha.r, a[i__1].i = alpha.i; | |||
/* L10: */ | |||
} | |||
return 0; | |||
return; | |||
/* End of CGEQL2 */ | |||
@@ -654,7 +654,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeqlf_(integer *m, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgeqlf_(integer *m, integer *n, complex *a, integer *lda, | |||
complex *tau, complex *work, integer *lwork, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -662,15 +662,16 @@ f"> */ | |||
/* Local variables */ | |||
integer i__, k, nbmin, iinfo; | |||
extern /* Subroutine */ int cgeql2_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgeql2_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *); | |||
integer ib, nb, ki, kk; | |||
extern /* Subroutine */ int clarfb_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void clarfb_(char *, char *, char *, char *, | |||
integer *, integer *, integer *, complex *, integer *, complex *, | |||
integer *, complex *, integer *, complex *, integer *); | |||
integer mu, nu, nx; | |||
extern /* Subroutine */ int clarft_(char *, char *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *), xerbla_(char *, integer *, ftnlen); | |||
extern /* Subroutine */ void clarft_(char *, char *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
integer ldwork, lwkopt; | |||
@@ -726,15 +727,15 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEQLF", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (k == 0) { | |||
return 0; | |||
return; | |||
} | |||
nbmin = 2; | |||
@@ -826,7 +827,7 @@ f"> */ | |||
} | |||
work[1].r = (real) iws, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGEQLF */ | |||
@@ -674,7 +674,7 @@ f"> */ | |||
/* > X. Sun, Computer Science Dept., Duke University, USA */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeqp3_(integer *m, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgeqp3_(integer *m, integer *n, complex *a, integer *lda, | |||
integer *jpvt, complex *tau, complex *work, integer *lwork, real * | |||
rwork, integer *info) | |||
{ | |||
@@ -684,24 +684,24 @@ f"> */ | |||
/* Local variables */ | |||
integer nfxd, j, nbmin; | |||
extern /* Subroutine */ int cswap_(integer *, complex *, integer *, | |||
extern /* Subroutine */ void cswap_(integer *, complex *, integer *, | |||
complex *, integer *); | |||
integer minmn, minws; | |||
extern /* Subroutine */ int claqp2_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void claqp2_(integer *, integer *, integer *, | |||
complex *, integer *, integer *, complex *, real *, real *, | |||
complex *); | |||
extern real scnrm2_(integer *, complex *, integer *); | |||
integer jb, na, nb, sm, sn, nx; | |||
extern /* Subroutine */ int cgeqrf_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *, integer *), xerbla_( | |||
char *, integer *, ftnlen); | |||
extern /* Subroutine */ void cgeqrf_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
extern /* Subroutine */ int claqps_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void claqps_(integer *, integer *, integer *, | |||
integer *, integer *, complex *, integer *, integer *, complex *, | |||
real *, real *, complex *, complex *, integer *); | |||
integer topbmn, sminmn; | |||
extern /* Subroutine */ int cunmqr_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cunmqr_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *, integer *); | |||
integer lwkopt; | |||
@@ -763,9 +763,9 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEQP3", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Move initial columns up front. */ | |||
@@ -921,7 +921,7 @@ L30: | |||
q__1.r = (real) lwkopt, q__1.i = 0.f; | |||
work[1].r = q__1.r, work[1].i = q__1.i; | |||
return 0; | |||
return; | |||
/* End of CGEQP3 */ | |||
@@ -683,7 +683,7 @@ static integer c__2 = 2; | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeqr_(integer *m, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgeqr_(integer *m, integer *n, complex *a, integer *lda, | |||
complex *t, integer *tsize, complex *work, integer *lwork, integer * | |||
info) | |||
{ | |||
@@ -696,11 +696,11 @@ static integer c__2 = 2; | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
extern /* Subroutine */ int cgeqrt_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void cgeqrt_(integer *, integer *, integer *, | |||
complex *, integer *, complex *, integer *, complex *, integer *); | |||
logical lminws, lquery; | |||
integer mintsz; | |||
extern /* Subroutine */ int clatsqr_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void clatsqr_(integer *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, integer *, complex *, | |||
integer *, integer *); | |||
@@ -829,15 +829,15 @@ static integer c__2 = 2; | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEQR", &i__1, (ftnlen)5); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (f2cmin(*m,*n) == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* The QR Decomposition */ | |||
@@ -854,7 +854,7 @@ static integer c__2 = 2; | |||
i__1 = f2cmax(i__2,i__3); | |||
work[1].r = (real) i__1, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGEQR */ | |||
@@ -644,7 +644,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeqr2_(integer *m, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgeqr2_(integer *m, integer *n, complex *a, integer *lda, | |||
complex *tau, complex *work, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -654,10 +654,10 @@ f"> */ | |||
/* Local variables */ | |||
integer i__, k; | |||
complex alpha; | |||
extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex * | |||
extern /* Subroutine */ void clarf_(char *, integer *, integer *, complex * | |||
, integer *, complex *, complex *, integer *, complex *), | |||
clarfg_(integer *, complex *, complex *, integer *, complex *), | |||
xerbla_(char *, integer *, ftnlen); | |||
clarfg_(integer *, complex *, complex *, integer *, complex *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
/* -- LAPACK computational routine (version 3.9.0) -- */ | |||
@@ -690,7 +690,7 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEQR2", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
k = f2cmin(*m,*n); | |||
@@ -723,7 +723,7 @@ f"> */ | |||
} | |||
/* L10: */ | |||
} | |||
return 0; | |||
return; | |||
/* End of CGEQR2 */ | |||
@@ -648,7 +648,7 @@ l elements using an unblocked algorithm. */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeqr2p_(integer *m, integer *n, complex *a, integer * | |||
/* Subroutine */ void cgeqr2p_(integer *m, integer *n, complex *a, integer * | |||
lda, complex *tau, complex *work, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -658,9 +658,10 @@ l elements using an unblocked algorithm. */ | |||
/* Local variables */ | |||
integer i__, k; | |||
complex alpha; | |||
extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex * | |||
, integer *, complex *, complex *, integer *, complex *), | |||
xerbla_(char *, integer *, ftnlen), clarfgp_(integer *, complex *, | |||
extern /* Subroutine */ void clarf_(char *, integer *, integer *, complex * | |||
, integer *, complex *, complex *, integer *, complex *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void clarfgp_(integer *, complex *, | |||
complex *, integer *, complex *); | |||
@@ -694,7 +695,7 @@ l elements using an unblocked algorithm. */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEQR2P", &i__1, (ftnlen)7); | |||
return 0; | |||
return; | |||
} | |||
k = f2cmin(*m,*n); | |||
@@ -727,7 +728,7 @@ l elements using an unblocked algorithm. */ | |||
} | |||
/* L10: */ | |||
} | |||
return 0; | |||
return; | |||
/* End of CGEQR2P */ | |||
@@ -661,7 +661,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeqrf_(integer *m, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgeqrf_(integer *m, integer *n, complex *a, integer *lda, | |||
complex *tau, complex *work, integer *lwork, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -669,15 +669,16 @@ f"> */ | |||
/* Local variables */ | |||
integer i__, k, nbmin, iinfo; | |||
extern /* Subroutine */ int cgeqr2_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgeqr2_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *); | |||
integer ib, nb; | |||
extern /* Subroutine */ int clarfb_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void clarfb_(char *, char *, char *, char *, | |||
integer *, integer *, integer *, complex *, integer *, complex *, | |||
integer *, complex *, integer *, complex *, integer *); | |||
integer nx; | |||
extern /* Subroutine */ int clarft_(char *, char *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *), xerbla_(char *, integer *, ftnlen); | |||
extern /* Subroutine */ void clarft_(char *, char *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
integer ldwork, lwkopt; | |||
@@ -722,9 +723,9 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEQRF", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -732,7 +733,7 @@ f"> */ | |||
k = f2cmin(*m,*n); | |||
if (k == 0) { | |||
work[1].r = 1.f, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
} | |||
nbmin = 2; | |||
@@ -817,7 +818,7 @@ f"> */ | |||
} | |||
work[1].r = (real) iws, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGEQRF */ | |||
@@ -665,7 +665,7 @@ static integer c__2 = 2; | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeqrfp_(integer *m, integer *n, complex *a, integer * | |||
/* Subroutine */ void cgeqrfp_(integer *m, integer *n, complex *a, integer * | |||
lda, complex *tau, complex *work, integer *lwork, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -673,17 +673,18 @@ static integer c__2 = 2; | |||
/* Local variables */ | |||
integer i__, k, nbmin, iinfo, ib, nb; | |||
extern /* Subroutine */ int clarfb_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void clarfb_(char *, char *, char *, char *, | |||
integer *, integer *, integer *, complex *, integer *, complex *, | |||
integer *, complex *, integer *, complex *, integer *); | |||
integer nx; | |||
extern /* Subroutine */ int clarft_(char *, char *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *), xerbla_(char *, integer *, ftnlen); | |||
extern /* Subroutine */ void clarft_(char *, char *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
integer ldwork, lwkopt; | |||
logical lquery; | |||
extern /* Subroutine */ int cgeqr2p_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgeqr2p_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *); | |||
integer iws; | |||
@@ -725,9 +726,9 @@ static integer c__2 = 2; | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEQRFP", &i__1, (ftnlen)7); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -735,7 +736,7 @@ static integer c__2 = 2; | |||
k = f2cmin(*m,*n); | |||
if (k == 0) { | |||
work[1].r = 1.f, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
} | |||
nbmin = 2; | |||
@@ -820,7 +821,7 @@ static integer c__2 = 2; | |||
} | |||
work[1].r = (real) iws, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGEQRFP */ | |||
@@ -650,7 +650,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeqrt_(integer *m, integer *n, integer *nb, complex *a, | |||
/* Subroutine */ void cgeqrt_(integer *m, integer *n, integer *nb, complex *a, | |||
integer *lda, complex *t, integer *ldt, complex *work, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -658,10 +658,11 @@ f"> */ | |||
/* Local variables */ | |||
integer i__, k, iinfo, ib; | |||
extern /* Subroutine */ int clarfb_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void clarfb_(char *, char *, char *, char *, | |||
integer *, integer *, integer *, complex *, integer *, complex *, | |||
integer *, complex *, integer *, complex *, integer *), xerbla_(char *, integer *, ftnlen), | |||
cgeqrt2_(integer *, integer *, complex *, integer *, complex *, | |||
integer *, complex *, integer *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void cgeqrt2_(integer *, integer *, complex *, integer *, complex *, | |||
integer *, integer *), cgeqrt3_(integer *, integer *, complex *, | |||
integer *, complex *, integer *, integer *); | |||
@@ -702,14 +703,14 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEQRT", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
k = f2cmin(*m,*n); | |||
if (k == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Blocked loop of length K */ | |||
@@ -744,7 +745,7 @@ f"> */ | |||
ib) * a_dim1], lda, &work[1], &i__5); | |||
} | |||
} | |||
return 0; | |||
return; | |||
/* End of CGEQRT */ | |||
@@ -643,7 +643,7 @@ presentation of Q. */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeqrt2_(integer *m, integer *n, complex *a, integer * | |||
/* Subroutine */ void cgeqrt2_(integer *m, integer *n, complex *a, integer * | |||
lda, complex *t, integer *ldt, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -652,14 +652,15 @@ presentation of Q. */ | |||
/* Local variables */ | |||
integer i__, k; | |||
extern /* Subroutine */ int cgerc_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgerc_(integer *, integer *, complex *, | |||
complex *, integer *, complex *, integer *, complex *, integer *); | |||
complex alpha; | |||
extern /* Subroutine */ int cgemv_(char *, integer *, integer *, complex * | |||
extern /* Subroutine */ void cgemv_(char *, integer *, integer *, complex * | |||
, complex *, integer *, complex *, integer *, complex *, complex * | |||
, integer *), ctrmv_(char *, char *, char *, integer *, | |||
complex *, integer *, complex *, integer *), clarfg_(integer *, complex *, complex *, integer *, | |||
complex *), xerbla_(char *, integer *, ftnlen); | |||
complex *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
complex aii; | |||
@@ -696,7 +697,7 @@ presentation of Q. */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEQRT2", &i__1, (ftnlen)7); | |||
return 0; | |||
return; | |||
} | |||
k = f2cmin(*m,*n); | |||
@@ -778,6 +779,6 @@ presentation of Q. */ | |||
/* End of CGEQRT2 */ | |||
return 0; | |||
return; | |||
} /* cgeqrt2_ */ | |||
@@ -647,7 +647,7 @@ compact WY representation of Q. </b> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgeqrt3_(integer *m, integer *n, complex *a, integer * | |||
/* Subroutine */ void cgeqrt3_(integer *m, integer *n, complex *a, integer * | |||
lda, complex *t, integer *ldt, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -656,16 +656,17 @@ compact WY representation of Q. </b> */ | |||
/* Local variables */ | |||
integer i__, j; | |||
extern /* Subroutine */ int cgemm_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cgemm_(char *, char *, integer *, integer *, | |||
integer *, complex *, complex *, integer *, complex *, integer *, | |||
complex *, complex *, integer *); | |||
integer iinfo; | |||
extern /* Subroutine */ int ctrmm_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void ctrmm_(char *, char *, char *, char *, | |||
integer *, integer *, complex *, complex *, integer *, complex *, | |||
integer *); | |||
integer i1, j1, n1, n2; | |||
extern /* Subroutine */ int clarfg_(integer *, complex *, complex *, | |||
integer *, complex *), xerbla_(char *, integer *, ftnlen); | |||
extern /* Subroutine */ void clarfg_(integer *, complex *, complex *, | |||
integer *, complex *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
/* -- LAPACK computational routine (version 3.7.0) -- */ | |||
@@ -699,7 +700,7 @@ compact WY representation of Q. </b> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGEQRT3", &i__1, (ftnlen)7); | |||
return 0; | |||
return; | |||
} | |||
if (*n == 1) { | |||
@@ -809,7 +810,7 @@ compact WY representation of Q. </b> */ | |||
} | |||
return 0; | |||
return; | |||
/* End of CGEQRT3 */ | |||
@@ -699,7 +699,7 @@ f"> */ | |||
/* > \ingroup complexGEcomputational */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgerfs_(char *trans, integer *n, integer *nrhs, complex * | |||
/* Subroutine */ void cgerfs_(char *trans, integer *n, integer *nrhs, complex * | |||
a, integer *lda, complex *af, integer *ldaf, integer *ipiv, complex * | |||
b, integer *ldb, complex *x, integer *ldx, real *ferr, real *berr, | |||
complex *work, real *rwork, integer *info) | |||
@@ -716,21 +716,22 @@ f"> */ | |||
integer i__, j, k; | |||
real s; | |||
extern logical lsame_(char *, char *); | |||
extern /* Subroutine */ int cgemv_(char *, integer *, integer *, complex * | |||
extern /* Subroutine */ void cgemv_(char *, integer *, integer *, complex * | |||
, complex *, integer *, complex *, integer *, complex *, complex * | |||
, integer *); | |||
integer isave[3]; | |||
extern /* Subroutine */ int ccopy_(integer *, complex *, integer *, | |||
extern /* Subroutine */ void ccopy_(integer *, complex *, integer *, | |||
complex *, integer *), caxpy_(integer *, complex *, complex *, | |||
integer *, complex *, integer *); | |||
integer count; | |||
extern /* Subroutine */ int clacn2_(integer *, complex *, complex *, real | |||
extern /* Subroutine */ void clacn2_(integer *, complex *, complex *, real | |||
*, integer *, integer *); | |||
real xk; | |||
extern real slamch_(char *); | |||
integer nz; | |||
real safmin; | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen), cgetrs_( | |||
extern /* Subroutine */ int xerbla_(char *, integer *, ftnlen); | |||
extern int cgetrs_( | |||
char *, integer *, integer *, complex *, integer *, integer *, | |||
complex *, integer *, integer *); | |||
logical notran; | |||
@@ -790,7 +791,7 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGERFS", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
@@ -802,7 +803,7 @@ f"> */ | |||
berr[j] = 0.f; | |||
/* L10: */ | |||
} | |||
return 0; | |||
return; | |||
} | |||
if (notran) { | |||
@@ -1028,7 +1029,7 @@ L100: | |||
/* L140: */ | |||
} | |||
return 0; | |||
return; | |||
/* End of CGERFS */ | |||
@@ -633,7 +633,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgerq2_(integer *m, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgerq2_(integer *m, integer *n, complex *a, integer *lda, | |||
complex *tau, complex *work, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -642,11 +642,11 @@ f"> */ | |||
/* Local variables */ | |||
integer i__, k; | |||
complex alpha; | |||
extern /* Subroutine */ int clarf_(char *, integer *, integer *, complex * | |||
extern /* Subroutine */ void clarf_(char *, integer *, integer *, complex * | |||
, integer *, complex *, complex *, integer *, complex *), | |||
clarfg_(integer *, complex *, complex *, integer *, complex *), | |||
clacgv_(integer *, complex *, integer *), xerbla_(char *, integer | |||
*, ftnlen); | |||
clacgv_(integer *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
/* -- LAPACK computational routine (version 3.7.0) -- */ | |||
@@ -679,7 +679,7 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGERQ2", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
k = f2cmin(*m,*n); | |||
@@ -710,7 +710,7 @@ f"> */ | |||
clacgv_(&i__1, &a[*m - k + i__ + a_dim1], lda); | |||
/* L10: */ | |||
} | |||
return 0; | |||
return; | |||
/* End of CGERQ2 */ | |||
@@ -654,7 +654,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgerqf_(integer *m, integer *n, complex *a, integer *lda, | |||
/* Subroutine */ void cgerqf_(integer *m, integer *n, complex *a, integer *lda, | |||
complex *tau, complex *work, integer *lwork, integer *info) | |||
{ | |||
/* System generated locals */ | |||
@@ -662,15 +662,16 @@ f"> */ | |||
/* Local variables */ | |||
integer i__, k, nbmin, iinfo; | |||
extern /* Subroutine */ int cgerq2_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgerq2_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *); | |||
integer ib, nb, ki, kk; | |||
extern /* Subroutine */ int clarfb_(char *, char *, char *, char *, | |||
extern /* Subroutine */ void clarfb_(char *, char *, char *, char *, | |||
integer *, integer *, integer *, complex *, integer *, complex *, | |||
integer *, complex *, integer *, complex *, integer *); | |||
integer mu, nu, nx; | |||
extern /* Subroutine */ int clarft_(char *, char *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *), xerbla_(char *, integer *, ftnlen); | |||
extern /* Subroutine */ void clarft_(char *, char *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
integer ldwork, lwkopt; | |||
@@ -726,15 +727,15 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGERQF", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (k == 0) { | |||
return 0; | |||
return; | |||
} | |||
nbmin = 2; | |||
@@ -825,7 +826,7 @@ f"> */ | |||
} | |||
work[1].r = (real) iws, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGERQF */ | |||
@@ -631,7 +631,7 @@ f"> */ | |||
/* > Umea University, S-901 87 Umea, Sweden. */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgesc2_(integer *n, complex *a, integer *lda, complex * | |||
/* Subroutine */ void cgesc2_(integer *n, complex *a, integer *lda, complex * | |||
rhs, integer *ipiv, integer *jpiv, real *scale) | |||
{ | |||
/* System generated locals */ | |||
@@ -642,7 +642,7 @@ f"> */ | |||
/* Local variables */ | |||
complex temp; | |||
integer i__, j; | |||
extern /* Subroutine */ int cscal_(integer *, complex *, complex *, | |||
extern /* Subroutine */ void cscal_(integer *, complex *, complex *, | |||
integer *), slabad_(real *, real *); | |||
extern integer icamax_(integer *, complex *, integer *); | |||
extern real slamch_(char *); | |||
@@ -745,7 +745,7 @@ f"> */ | |||
i__1 = *n - 1; | |||
claswp_(&c__1, &rhs[1], lda, &c__1, &i__1, &jpiv[1], &c_n1); | |||
return 0; | |||
return; | |||
/* End of CGESC2 */ | |||
@@ -742,7 +742,7 @@ f"> */ | |||
/* > California at Berkeley, USA */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgesdd_(char *jobz, integer *m, integer *n, complex *a, | |||
/* Subroutine */ void cgesdd_(char *jobz, integer *m, integer *n, complex *a, | |||
integer *lda, real *s, complex *u, integer *ldu, complex *vt, integer | |||
*ldvt, complex *work, integer *lwork, real *rwork, integer *iwork, | |||
integer *info) | |||
@@ -760,26 +760,26 @@ f"> */ | |||
real anrm; | |||
integer ierr, itau, lwork_cunmbr_qln_mm__, lwork_cunmbr_qln_mn__, | |||
lwork_cunmbr_qln_nn__, idum[1], irvt, i__; | |||
extern /* Subroutine */ int cgemm_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cgemm_(char *, char *, integer *, integer *, | |||
integer *, complex *, complex *, integer *, complex *, integer *, | |||
complex *, complex *, integer *); | |||
extern logical lsame_(char *, char *); | |||
integer chunk, minmn, wrkbl, itaup, itauq; | |||
logical wntqa; | |||
integer nwork; | |||
extern /* Subroutine */ int clacp2_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void clacp2_(char *, integer *, integer *, real *, | |||
integer *, complex *, integer *); | |||
logical wntqn, wntqo, wntqs; | |||
integer mnthr1, mnthr2, ie, lwork_cungbr_p_mn__, il, lwork_cungbr_p_nn__, | |||
lwork_cungbr_q_mn__, lwork_cungbr_q_mm__; | |||
extern /* Subroutine */ int cgebrd_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgebrd_(integer *, integer *, complex *, | |||
integer *, real *, real *, complex *, complex *, complex *, | |||
integer *, integer *); | |||
integer ir; | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *); | |||
integer iu; | |||
extern /* Subroutine */ int cgelqf_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgelqf_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *, integer *), clacrm_( | |||
integer *, integer *, complex *, integer *, real *, integer *, | |||
complex *, integer *, real *), clarcm_(integer *, integer *, real | |||
@@ -790,13 +790,15 @@ f"> */ | |||
integer *, real *, integer *, real *, integer *, integer *), cgeqrf_(integer *, integer *, complex *, integer | |||
*, complex *, complex *, integer *, integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int clacpy_(char *, integer *, integer *, complex | |||
extern /* Subroutine */ void clacpy_(char *, integer *, integer *, complex | |||
*, integer *, complex *, integer *), claset_(char *, | |||
integer *, integer *, complex *, complex *, complex *, integer *), xerbla_(char *, integer *, ftnlen), cungbr_(char *, | |||
integer *, integer *, complex *, complex *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void cungbr_(char *, | |||
integer *, integer *, integer *, complex *, integer *, complex *, | |||
complex *, integer *, integer *); | |||
real bignum; | |||
extern /* Subroutine */ int slascl_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void slascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, real *, integer *, integer *), cunmbr_(char *, char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *, integer *), cunglq_( | |||
@@ -804,7 +806,7 @@ f"> */ | |||
complex *, integer *, integer *); | |||
extern logical sisnan_(real *); | |||
integer ldwrkl; | |||
extern /* Subroutine */ int cungqr_(integer *, integer *, integer *, | |||
extern /* Subroutine */ void cungqr_(integer *, integer *, integer *, | |||
complex *, integer *, complex *, complex *, integer *, integer *); | |||
integer ldwrkr, minwrk, ldwrku, maxwrk, ldwkvt; | |||
real smlnum; | |||
@@ -1267,15 +1269,15 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGESDD", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*m == 0 || *n == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants */ | |||
@@ -1289,7 +1291,7 @@ f"> */ | |||
anrm = clange_("M", m, n, &a[a_offset], lda, dum); | |||
if (sisnan_(&anrm)) { | |||
*info = -4; | |||
return 0; | |||
return; | |||
} | |||
iscl = 0; | |||
if (anrm > 0.f && anrm < smlnum) { | |||
@@ -2951,7 +2953,7 @@ f"> */ | |||
work[1].r = (real) maxwrk, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGESDD */ | |||
@@ -639,8 +639,10 @@ iver) </b> */ | |||
integer a_dim1, a_offset, b_dim1, b_offset, i__1; | |||
/* Local variables */ | |||
extern /* Subroutine */ int cgetrf_(integer *, integer *, complex *, | |||
integer *, integer *, integer *), xerbla_(char *, integer *, ftnlen), cgetrs_(char *, integer *, integer *, complex *, integer | |||
extern /* Subroutine */ void cgetrf_(integer *, integer *, complex *, | |||
integer *, integer *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void cgetrs_(char *, integer *, integer *, complex *, integer | |||
*, integer *, complex *, integer *, integer *); | |||
@@ -732,7 +732,7 @@ f"> */ | |||
/* > \ingroup complexGEsing */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgesvd_(char *jobu, char *jobvt, integer *m, integer *n, | |||
/* Subroutine */ void cgesvd_(char *jobu, char *jobvt, integer *m, integer *n, | |||
complex *a, integer *lda, real *s, complex *u, integer *ldu, complex * | |||
vt, integer *ldvt, complex *work, integer *lwork, real *rwork, | |||
integer *info) | |||
@@ -749,40 +749,41 @@ f"> */ | |||
real anrm; | |||
integer ierr, itau, ncvt, nrvt, lwork_cgebrd__, lwork_cgelqf__, | |||
lwork_cgeqrf__, i__; | |||
extern /* Subroutine */ int cgemm_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cgemm_(char *, char *, integer *, integer *, | |||
integer *, complex *, complex *, integer *, complex *, integer *, | |||
complex *, complex *, integer *); | |||
extern logical lsame_(char *, char *); | |||
integer chunk, minmn, wrkbl, itaup, itauq, mnthr, iwork; | |||
logical wntua, wntva, wntun, wntuo, wntvn, wntvo, wntus, wntvs; | |||
integer ie; | |||
extern /* Subroutine */ int cgebrd_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgebrd_(integer *, integer *, complex *, | |||
integer *, real *, real *, complex *, complex *, complex *, | |||
integer *, integer *); | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *); | |||
integer ir, iu; | |||
extern /* Subroutine */ int cgelqf_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgelqf_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *, integer *), clascl_( | |||
char *, integer *, integer *, real *, real *, integer *, integer * | |||
, complex *, integer *, integer *), cgeqrf_(integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int clacpy_(char *, integer *, integer *, complex | |||
extern /* Subroutine */ void clacpy_(char *, integer *, integer *, complex | |||
*, integer *, complex *, integer *), claset_(char *, | |||
integer *, integer *, complex *, complex *, complex *, integer *), cbdsqr_(char *, integer *, integer *, integer *, integer | |||
*, real *, real *, complex *, integer *, complex *, integer *, | |||
complex *, integer *, real *, integer *), xerbla_(char *, | |||
integer *, ftnlen), cungbr_(char *, integer *, integer *, integer | |||
complex *, integer *, real *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void cungbr_(char *, integer *, integer *, integer | |||
*, complex *, integer *, complex *, complex *, integer *, integer | |||
*); | |||
real bignum; | |||
extern /* Subroutine */ int slascl_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void slascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, real *, integer *, integer *); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
extern /* Subroutine */ int cunmbr_(char *, char *, char *, integer *, | |||
extern /* Subroutine */ void cunmbr_(char *, char *, char *, integer *, | |||
integer *, integer *, complex *, integer *, complex *, complex *, | |||
integer *, complex *, integer *, integer *), cunglq_(integer *, integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *, integer *), cungqr_( | |||
@@ -1334,15 +1335,15 @@ f"> */ | |||
if (*info != 0) { | |||
i__2 = -(*info); | |||
xerbla_("CGESVD", &i__2, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*m == 0 || *n == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Get machine constants */ | |||
@@ -4718,7 +4719,7 @@ f"> */ | |||
work[1].r = (real) maxwrk, work[1].i = 0.f; | |||
return 0; | |||
return; | |||
/* End of CGESVD */ | |||
@@ -932,7 +932,7 @@ static logical c_false = FALSE_; | |||
/* > \ingroup complexGEsing */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgesvdq_(char *joba, char *jobp, char *jobr, char *jobu, | |||
/* Subroutine */ void cgesvdq_(char *joba, char *jobp, char *jobr, char *jobu, | |||
char *jobv, integer *m, integer *n, complex *a, integer *lda, real *s, | |||
complex *u, integer *ldu, complex *v, integer *ldv, integer *numrank, | |||
integer *iwork, integer *liwork, complex *cwork, integer *lcwork, | |||
@@ -965,7 +965,7 @@ static logical c_false = FALSE_; | |||
logical dntwu, dntwv, wntuf, wntva; | |||
integer lwunq; | |||
logical wntur, wntus, wntvr; | |||
extern /* Subroutine */ int cgeqp3_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgeqp3_(integer *, integer *, complex *, | |||
integer *, integer *, complex *, complex *, integer *, real *, | |||
integer *); | |||
extern real scnrm2_(integer *, complex *, integer *); | |||
@@ -973,21 +973,22 @@ static logical c_false = FALSE_; | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *); | |||
integer nr; | |||
extern /* Subroutine */ int cgelqf_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgelqf_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *, integer *), clascl_( | |||
char *, integer *, integer *, real *, real *, integer *, integer * | |||
, complex *, integer *, integer *); | |||
real sconda; | |||
extern /* Subroutine */ int cgeqrf_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgeqrf_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *, integer *), csscal_( | |||
integer *, real *, complex *, integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int cgesvd_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cgesvd_(char *, char *, integer *, integer *, | |||
complex *, integer *, real *, complex *, integer *, complex *, | |||
integer *, complex *, integer *, real *, integer *), clacpy_(char *, integer *, integer *, complex *, integer | |||
*, complex *, integer *), claset_(char *, integer *, | |||
integer *, complex *, complex *, complex *, integer *), | |||
xerbla_(char *, integer *, ftnlen), clapmt_(logical *, integer *, | |||
integer *, complex *, complex *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern void clapmt_(logical *, integer *, | |||
integer *, complex *, integer *, integer *), slascl_(char *, | |||
integer *, integer *, real *, real *, integer *, integer *, real * | |||
, integer *, integer *), cpocon_(char *, integer *, | |||
@@ -995,10 +996,11 @@ static logical c_false = FALSE_; | |||
); | |||
extern integer isamax_(integer *, real *, integer *); | |||
extern /* Subroutine */ int claswp_(integer *, complex *, integer *, | |||
integer *, integer *, integer *, integer *), slaset_(char *, | |||
integer *, integer *, integer *, integer *); | |||
extern void slaset_(char *, | |||
integer *, integer *, real *, real *, real *, integer *); | |||
complex cdummy[1]; | |||
extern /* Subroutine */ int cunmlq_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cunmlq_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *, integer *), cunmqr_(char *, | |||
char *, integer *, integer *, integer *, complex *, integer *, | |||
@@ -1380,7 +1382,7 @@ static logical c_false = FALSE_; | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGESVDQ", &i__1, (ftnlen)7); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
/* Return optimal workspace */ | |||
@@ -1389,13 +1391,13 @@ static logical c_false = FALSE_; | |||
cwork[1].r = (real) optwrk, cwork[1].i = 0.f; | |||
cwork[2].r = (real) minwrk, cwork[2].i = 0.f; | |||
rwork[1] = (real) rminwrk; | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if the matrix is void. */ | |||
if (*m == 0 || *n == 0) { | |||
return 0; | |||
return; | |||
} | |||
big = slamch_("O"); | |||
@@ -1412,7 +1414,7 @@ static logical c_false = FALSE_; | |||
*info = -8; | |||
i__2 = -(*info); | |||
xerbla_("CGESVDQ", &i__2, (ftnlen)7); | |||
return 0; | |||
return; | |||
} | |||
/* L1904: */ | |||
} | |||
@@ -1466,7 +1468,7 @@ static logical c_false = FALSE_; | |||
rwork[1] = -1.f; | |||
} | |||
rwork[2] = -1.f; | |||
return 0; | |||
return; | |||
} | |||
if (rwork[1] > big / sqrt((real) (*m))) { | |||
@@ -1490,7 +1492,7 @@ static logical c_false = FALSE_; | |||
*info = -8; | |||
i__1 = -(*info); | |||
xerbla_("CGESVDQ", &i__1, (ftnlen)7); | |||
return 0; | |||
return; | |||
} | |||
if (rtmp > big / sqrt((real) (*m))) { | |||
/* matrix by 1/sqrt(M) if too large entry detected */ | |||
@@ -2317,7 +2319,7 @@ L4002: | |||
/* full row rank triangular (trapezoidal) factor of A. */ | |||
*numrank = nr; | |||
return 0; | |||
return; | |||
/* End of CGESVDQ */ | |||
@@ -786,7 +786,7 @@ static integer c_n1 = -1; | |||
/* > \ingroup complexGEsing */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgesvdx_(char *jobu, char *jobvt, char *range, integer * | |||
/* Subroutine */ void cgesvdx_(char *jobu, char *jobvt, char *range, integer * | |||
m, integer *n, complex *a, integer *lda, real *vl, real *vu, integer * | |||
il, integer *iu, integer *ns, real *s, complex *u, integer *ldu, | |||
complex *vt, integer *ldvt, complex *work, integer *lwork, real * | |||
@@ -813,43 +813,44 @@ static integer c_n1 = -1; | |||
integer iltgk, itemp, minmn, itaup, itauq, iutgk, itgkz, mnthr; | |||
logical wantu; | |||
integer id, ie; | |||
extern /* Subroutine */ int cgebrd_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgebrd_(integer *, integer *, complex *, | |||
integer *, real *, real *, complex *, complex *, complex *, | |||
integer *, integer *); | |||
extern real clange_(char *, integer *, integer *, complex *, integer *, | |||
real *); | |||
extern /* Subroutine */ int cgelqf_(integer *, integer *, complex *, | |||
extern /* Subroutine */ void cgelqf_(integer *, integer *, complex *, | |||
integer *, complex *, complex *, integer *, integer *), clascl_( | |||
char *, integer *, integer *, real *, real *, integer *, integer * | |||
, complex *, integer *, integer *), cgeqrf_(integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int claset_(char *, integer *, integer *, complex | |||
extern /* Subroutine */ void claset_(char *, integer *, integer *, complex | |||
*, complex *, complex *, integer *), clacpy_(char *, | |||
integer *, integer *, complex *, integer *, complex *, integer *), xerbla_(char *, integer *, ftnlen); | |||
integer *, integer *, complex *, integer *, complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
extern integer ilaenv_(integer *, char *, char *, integer *, integer *, | |||
integer *, integer *, ftnlen, ftnlen); | |||
real bignum; | |||
extern /* Subroutine */ int slascl_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void slascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, real *, integer *, integer *); | |||
real abstol; | |||
extern /* Subroutine */ int cunmbr_(char *, char *, char *, integer *, | |||
extern /* Subroutine */ void cunmbr_(char *, char *, char *, integer *, | |||
integer *, integer *, complex *, integer *, complex *, complex *, | |||
integer *, complex *, integer *, integer *); | |||
char rngtgk[1]; | |||
extern /* Subroutine */ int cunmlq_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cunmlq_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *, integer *); | |||
integer itempr; | |||
extern /* Subroutine */ int cunmqr_(char *, char *, integer *, integer *, | |||
extern /* Subroutine */ void cunmqr_(char *, char *, integer *, integer *, | |||
integer *, complex *, integer *, complex *, complex *, integer *, | |||
complex *, integer *, integer *); | |||
integer minwrk, maxwrk; | |||
real smlnum; | |||
logical lquery, wantvt; | |||
real dum[1], eps; | |||
extern /* Subroutine */ int sbdsvdx_(char *, char *, char *, integer *, | |||
extern /* Subroutine */ void sbdsvdx_(char *, char *, char *, integer *, | |||
real *, real *, real *, real *, integer *, integer *, integer *, | |||
real *, real *, integer *, real *, integer *, integer *); | |||
@@ -1049,15 +1050,15 @@ static integer c_n1 = -1; | |||
if (*info != 0) { | |||
i__2 = -(*info); | |||
xerbla_("CGESVDX", &i__2, (ftnlen)7); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
return 0; | |||
return; | |||
} | |||
/* Quick return if possible */ | |||
if (*m == 0 || *n == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Set singular values indices accord to RANGE='A'. */ | |||
@@ -1501,7 +1502,7 @@ static integer c_n1 = -1; | |||
q__1.r = r__1, q__1.i = 0.f; | |||
work[1].r = q__1.r, work[1].i = q__1.i; | |||
return 0; | |||
return; | |||
/* End of CGESVDX */ | |||
@@ -868,7 +868,7 @@ f"> */ | |||
/* > \endverbatim */ | |||
/* > */ | |||
/* ===================================================================== */ | |||
/* Subroutine */ int cgesvj_(char *joba, char *jobu, char *jobv, integer *m, | |||
/* Subroutine */ void cgesvj_(char *joba, char *jobu, char *jobv, integer *m, | |||
integer *n, complex *a, integer *lda, real *sva, integer *mv, complex | |||
*v, integer *ldv, complex *cwork, integer *lwork, real *rwork, | |||
integer *lrwork, integer *info) | |||
@@ -885,7 +885,7 @@ f"> */ | |||
real aaqq, ctol; | |||
integer ierr; | |||
real bigtheta; | |||
extern /* Subroutine */ int crot_(integer *, complex *, integer *, | |||
extern /* Subroutine */ void crot_(integer *, complex *, integer *, | |||
complex *, integer *, real *, complex *); | |||
complex ompq; | |||
integer pskipped; | |||
@@ -898,16 +898,16 @@ f"> */ | |||
extern logical lsame_(char *, char *); | |||
real theta, small, sfmin; | |||
logical lsvec; | |||
extern /* Subroutine */ int ccopy_(integer *, complex *, integer *, | |||
extern /* Subroutine */ void ccopy_(integer *, complex *, integer *, | |||
complex *, integer *), cswap_(integer *, complex *, integer *, | |||
complex *, integer *); | |||
real epsln; | |||
logical applv, rsvec, uctol; | |||
extern /* Subroutine */ int caxpy_(integer *, complex *, complex *, | |||
extern /* Subroutine */ void caxpy_(integer *, complex *, complex *, | |||
integer *, complex *, integer *); | |||
logical lower, upper, rotok; | |||
integer n2, n4; | |||
extern /* Subroutine */ int cgsvj0_(char *, integer *, integer *, complex | |||
extern /* Subroutine */ void cgsvj0_(char *, integer *, integer *, complex | |||
*, integer *, complex *, real *, integer *, complex *, integer *, | |||
real *, real *, real *, integer *, complex *, integer *, integer * | |||
), cgsvj1_(char *, integer *, integer *, integer *, | |||
@@ -918,18 +918,19 @@ f"> */ | |||
extern real scnrm2_(integer *, complex *, integer *); | |||
integer n34; | |||
real cs, sn; | |||
extern /* Subroutine */ int clascl_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void clascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, complex *, integer *, integer *); | |||
extern real slamch_(char *); | |||
extern /* Subroutine */ int csscal_(integer *, real *, complex *, integer | |||
extern /* Subroutine */ void csscal_(integer *, real *, complex *, integer | |||
*), claset_(char *, integer *, integer *, complex *, complex *, | |||
complex *, integer *), xerbla_(char *, integer *, ftnlen); | |||
complex *, integer *); | |||
extern int xerbla_(char *, integer *, ftnlen); | |||
integer ijblsk, swband; | |||
extern integer isamax_(integer *, real *, integer *); | |||
extern /* Subroutine */ int slascl_(char *, integer *, integer *, real *, | |||
extern /* Subroutine */ void slascl_(char *, integer *, integer *, real *, | |||
real *, integer *, integer *, real *, integer *, integer *); | |||
integer blskip; | |||
extern /* Subroutine */ int classq_(integer *, complex *, integer *, real | |||
extern /* Subroutine */ void classq_(integer *, complex *, integer *, real | |||
*, real *); | |||
real mxaapq, thsign, mxsinj; | |||
integer ir1, emptsw; | |||
@@ -1014,18 +1015,18 @@ f"> */ | |||
if (*info != 0) { | |||
i__1 = -(*info); | |||
xerbla_("CGESVJ", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} else if (lquery) { | |||
i__1 = *m + *n; | |||
cwork[1].r = (real) i__1, cwork[1].i = 0.f; | |||
rwork[1] = (real) f2cmax(*n,6); | |||
return 0; | |||
return; | |||
} | |||
/* #:) Quick return for void matrix */ | |||
if (*m == 0 || *n == 0) { | |||
return 0; | |||
return; | |||
} | |||
/* Set numerical parameters */ | |||
@@ -1067,7 +1068,7 @@ f"> */ | |||
*info = -4; | |||
i__1 = -(*info); | |||
xerbla_("CGESVJ", &i__1, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
/* Initialize the right singular vector matrix. */ | |||
@@ -1105,7 +1106,7 @@ f"> */ | |||
*info = -6; | |||
i__2 = -(*info); | |||
xerbla_("CGESVJ", &i__2, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
aaqq = sqrt(aaqq); | |||
if (aapp < big / aaqq && noscale) { | |||
@@ -1135,7 +1136,7 @@ f"> */ | |||
*info = -6; | |||
i__2 = -(*info); | |||
xerbla_("CGESVJ", &i__2, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
aaqq = sqrt(aaqq); | |||
if (aapp < big / aaqq && noscale) { | |||
@@ -1165,7 +1166,7 @@ f"> */ | |||
*info = -6; | |||
i__2 = -(*info); | |||
xerbla_("CGESVJ", &i__2, (ftnlen)6); | |||
return 0; | |||
return; | |||
} | |||
aaqq = sqrt(aaqq); | |||
if (aapp < big / aaqq && noscale) { | |||
@@ -1221,7 +1222,7 @@ f"> */ | |||
rwork[4] = 0.f; | |||
rwork[5] = 0.f; | |||
rwork[6] = 0.f; | |||
return 0; | |||
return; | |||
} | |||
/* #:) Quick return for one-column matrix */ | |||
@@ -1241,7 +1242,7 @@ f"> */ | |||
rwork[4] = 0.f; | |||
rwork[5] = 0.f; | |||
rwork[6] = 0.f; | |||
return 0; | |||
return; | |||
} | |||
/* Protect small singular values from underflow, and try to */ | |||
@@ -2267,6 +2268,6 @@ L1995: | |||
/* MXSINJ is the largest absolute value of the sines of Jacobi angles */ | |||
/* in the last sweep */ | |||
return 0; | |||
return; | |||
} /* cgesvj_ */ | |||