diff options
Diffstat (limited to 'includes/lapack.h')
-rw-r--r-- | includes/lapack.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/includes/lapack.h b/includes/lapack.h index 0bee916e..d3f6cb32 100644 --- a/includes/lapack.h +++ b/includes/lapack.h @@ -24,6 +24,16 @@ extern "C" { #endif +#ifndef lapack_int +#define lapack_int int +#endif +#ifndef lapack_logical +#define lapack_logical lapack_int +#endif + +typedef lapack_logical (*LAPACK_D_SELECT3) (double*, double*, double*); +typedef lapack_logical (*LAPACK_D_SELECT2) (double*, double*); + #define getRelativeMachinePrecision() dlamch_("e", 1L) #define getOverflowThreshold() dlamch_("o", 1L) #define getUnderflowThreshold() dlamch_("u", 1L) @@ -162,6 +172,36 @@ extern int C2F(zheev)(char*,char*,int*,doubleComplex*,int*,double*,doubleComplex extern int C2F(dgeev)(char*,char*,int*,double*,int*,double*,double*,double*,int*,double*,int*,double*,int*,int*); extern int C2F(dsyev)(char*,char*,int*,double*,int*,double*,double*,int*,int*); +/*used in schur*/ +extern int dgees_(char*,char*,LAPACK_D_SELECT2,int*,double*,int*,int*, \ + double*,double*,double*,int*,double*,int*,int*,int*); + +extern int dgges_(char*,char*,char*,LAPACK_D_SELECT3,int*,double*,int*,double*,int*, \ + int*,double*,double*,double*,double*,int*,double*,int*,double*, int*, \ + int*,int*); + +/*used in matrix balancing*/ +extern int dgebal_(char*,int*,double*,int*,int*,int*,double*,int*); +extern int dggbal_(char*,int*,double*,int*,double*,int*,int*,int*,double*, \ + double*,double*,int*); +extern int dgebak_(char*,char*,int*,int*,int*,double*,int*,double*,int*,int*); + +/*Used in SVD */ +extern double dgesvd_(char*,char*,int*,int*,double*,int*,double*,double*,int*,\ + double*,int*,double *,int*,int*); + +/* Used in svd complex */ +extern doubleComplex zgesvd_( char* , char* , int* , int* ,doubleComplex *,\ + int* , double* ,doubleComplex* , int* ,doubleComplex* , int* ,\ + doubleComplex* , int* , double* , int* ); + +/*USed in QR decompsition*/ +extern double dgeqrf_(int *,int *,double *,int *,double *,double *,int *,int *); +extern double dgeqpf_(int *,int *,double *,int *,int *,double *,double *,int *); +extern double dorgqr_(int *,int *,int *,double *,int *,double *,double *,int *,int *); +extern void dlaset_(char *,int *,int *,double *,double *,double *,int *); + + #ifdef __cplusplus } /* extern "C" */ #endif |