summaryrefslogtreecommitdiff
path: root/includes/lapack.h
diff options
context:
space:
mode:
Diffstat (limited to 'includes/lapack.h')
-rw-r--r--includes/lapack.h40
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