sisi4s
Loading...
Searching...
No Matches
Lapack.hpp
Go to the documentation of this file.
1#ifndef LAPACK_DEFINED
2#define LAPACK_DEFINED
3
4#include <math/Float.hpp>
5#include <math/Complex.hpp>
6
7// TODO: use define for name mangling: underscore or not
8
9extern "C" {
10void dgeev_(const char *jobvLeft,
11 const char *jobvRight,
12 const int *n,
14 const int *lda,
15 sisi4s::Float64 *wReal,
16 sisi4s::Float64 *wImag,
17 sisi4s::Float64 *vLeft,
18 const int *ldvLeft,
19 sisi4s::Float64 *vRight,
20 const int *ldvRight,
21 sisi4s::Float64 *work,
22 const int *workSize,
23 int *info);
24void zgeev_(const char *jobvLeft,
25 const char *jobvRight,
26 const int *n,
27 const sisi4s::Complex64 *a,
28 const int *lda,
30 sisi4s::Complex64 *vLeft,
31 const int *ldvLeft,
32 sisi4s::Complex64 *vRight,
33 const int *ldvRight,
35 const int *workSize,
36 sisi4s::Float64 *rwork,
37 int *info);
38void dsyev_(const char *jobz,
39 const char *uplo,
40 const int *n,
42 const int *lda,
44 sisi4s::Float64 *work,
45 const int *lwork,
46 int *info);
47void dsysv_(const char *uplo,
48 const int *n,
49 const int *m,
51 const int *lda,
52 const int *ipiv,
54 const int *ldb,
55 sisi4s::Float64 *work,
56 const int *lwork,
57 const int *info);
58void dgetrf_(const int *m,
59 const int *n,
61 const int *lda,
62 const int *rowPermutation,
63 int *info);
64void zgetrf_(const int *m,
65 const int *n,
67 const int *lda,
68 const int *rowPermutation,
69 int *info);
70void dgetri_(const int *n,
72 const int *lda,
73 const int *rowPermutation,
74 sisi4s::Float64 *work,
75 const int *workSize,
76 int *info);
77void zgetri_(const int *n,
79 const int *lda,
80 const int *rowPermutation,
82 const int *workSize,
83 int *info);
84// void dgemm_(
85// const char *transa,
86// const char *transb,
87// const int *m,
88// const int *n,
89// const int *k,
90// double *alpha,
91// const double *A,
92// const int *lda,
93// const double *B,
94// const int *ldb,
95// double *beta,
96// double *C,
97// const int *ldc
98// );
99void dger_(const int *M,
100 const int *N,
101 const double *alpha,
102 const double *X,
103 const int *incx,
104 const double *Y,
105 const int *incy,
106 double *A,
107 const int *lda);
108}
109
110#endif
void dgetri_(const int *n, sisi4s::Float64 *a, const int *lda, const int *rowPermutation, sisi4s::Float64 *work, const int *workSize, int *info)
void zgetri_(const int *n, sisi4s::Complex64 *a, const int *lda, const int *rowPermutation, sisi4s::Complex64 *work, const int *workSize, int *info)
void dgeev_(const char *jobvLeft, const char *jobvRight, const int *n, sisi4s::Float64 *a, const int *lda, sisi4s::Float64 *wReal, sisi4s::Float64 *wImag, sisi4s::Float64 *vLeft, const int *ldvLeft, sisi4s::Float64 *vRight, const int *ldvRight, sisi4s::Float64 *work, const int *workSize, int *info)
void dger_(const int *M, const int *N, const double *alpha, const double *X, const int *incx, const double *Y, const int *incy, double *A, const int *lda)
void dsyev_(const char *jobz, const char *uplo, const int *n, sisi4s::Float64 *a, const int *lda, sisi4s::Float64 *w, sisi4s::Float64 *work, const int *lwork, int *info)
void dgetrf_(const int *m, const int *n, sisi4s::Float64 *a, const int *lda, const int *rowPermutation, int *info)
void zgeev_(const char *jobvLeft, const char *jobvRight, const int *n, const sisi4s::Complex64 *a, const int *lda, sisi4s::Complex64 *w, sisi4s::Complex64 *vLeft, const int *ldvLeft, sisi4s::Complex64 *vRight, const int *ldvRight, sisi4s::Complex64 *work, const int *workSize, sisi4s::Float64 *rwork, int *info)
void dsysv_(const char *uplo, const int *n, const int *m, sisi4s::Float64 *a, const int *lda, const int *ipiv, sisi4s::Float64 *b, const int *ldb, sisi4s::Float64 *work, const int *lwork, const int *info)
void zgetrf_(const int *m, const int *n, sisi4s::Complex64 *a, const int *lda, const int *rowPermutation, int *info)
Complex< Float64 > Complex64
Definition Complex.hpp:14
FloatTypes< 64 >::type Float64
Definition Float.hpp:30