00001
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef _GAN_MATVEC_CLAPACK_H
00030 #define _GAN_MATVEC_CLAPACK_H
00031
00032 #include <gandalf/common/misc_defs.h>
00033 #include <gandalf/linalg/vec_gen.h>
00034 #include <gandalf/linalg/mat_gen.h>
00035 #include <gandalf/linalg/mat_square.h>
00036
00037 #ifdef __cplusplus
00038 extern "C" {
00039 #endif
00040
00056 Gan_Bool gan_clapack_pptrf ( Gan_SquMatrix *A, int *error_code );
00057 Gan_Bool gan_clapack_pptri ( Gan_SquMatrix *A );
00058 Gan_Bool gan_clapack_getf2 ( Gan_Matrix *A, long *ipiv, int *error_code );
00059 Gan_Bool gan_clapack_getrf ( Gan_Matrix *A, long *ipiv, int *error_code );
00060 Gan_Bool gan_clapack_getri ( Gan_Matrix *A, long *ipiv,
00061 double *work, unsigned long work_size );
00062 Gan_Bool gan_clapack_geqrf ( Gan_Matrix *A, Gan_Vector *tau,
00063 double *work, unsigned long work_size );
00064 Gan_Bool gan_clapack_gelqf ( Gan_Matrix *A, Gan_Vector *tau,
00065 double *work, unsigned long work_size );
00066 Gan_Bool gan_clapack_orgqr ( Gan_Matrix *A, Gan_Vector *tau,
00067 double *work, unsigned long work_size );
00068 Gan_Bool gan_clapack_orglq ( Gan_Matrix *A, Gan_Vector *tau,
00069 double *work, unsigned long work_size );
00070 Gan_Bool gan_clapack_gesv ( Gan_Matrix *A, Gan_Matrix *B, long *ipiv );
00071
00072 #ifdef HAVE_LAPACK
00073
00074 Gan_Bool gan_clapack_geev ( Gan_Matrix *A,
00075 Gan_SquMatrix *WR, Gan_SquMatrix *WI,
00076 Gan_Matrix *VL, Gan_Matrix *VR,
00077 double *work, unsigned long work_size );
00078 Gan_Bool gan_clapack_gees ( Gan_Matrix *A, Gan_Matrix *Z,
00079 double *work, unsigned long work_size );
00080 #endif
00081
00094 #ifdef __cplusplus
00095 }
00096 #endif
00097
00098 #endif