5#ifndef YAC_LAPACK_INTERFACE_H
6#define YAC_LAPACK_INTERFACE_H
12#ifndef YAC_LAPACK_INTERFACE_ID
13#error None of the supported LAPACK interfaces is available
16#if YAC_LAPACK_INTERFACE_ID == 1
18#include <mkl_lapacke.h>
20#elif YAC_LAPACK_INTERFACE_ID == 2
24#elif YAC_LAPACK_INTERFACE_ID == 3
33#define lapack_int ATL_INT
36#define LAPACK_COL_MAJOR CblasColMajor
39lapack_int LAPACKE_dgels_work(
int matrix_layout,
char trans, lapack_int m,
40 lapack_int n, lapack_int nrhs,
double* a,
41 lapack_int lda,
double* b, lapack_int ldb,
42 double* work, lapack_int lwork );
45lapack_int LAPACKE_dgesv(
int matrix_layout, lapack_int n, lapack_int nrhs,
46 double* a, lapack_int lda, lapack_int* ipiv,
47 double* b, lapack_int ldb );
49lapack_int LAPACKE_dgetrf(
int matrix_layout, lapack_int m, lapack_int n,
50 double* a, lapack_int lda, lapack_int* ipiv );
52lapack_int LAPACKE_dgetri_work(
int matrix_layout, lapack_int n,
double* a,
53 lapack_int lda,
const lapack_int* ipiv,
54 double* work, lapack_int lwork );
56#define YAC_LAPACK_NO_DSYTR
57#define YAC_LAPACK_C_INDEXING
59#elif YAC_LAPACK_INTERFACE_ID == 4
64#define lapack_int integer
67#define LAPACK_COL_MAJOR 102
70lapack_int LAPACKE_dgels_work(
int matrix_layout,
char trans, lapack_int m,
71 lapack_int n, lapack_int nrhs,
double* a,
72 lapack_int lda,
double* b, lapack_int ldb,
73 double* work, lapack_int lwork );
76lapack_int LAPACKE_dgesv(
int matrix_layout, lapack_int n, lapack_int nrhs,
77 double* a, lapack_int lda, lapack_int* ipiv,
78 double* b, lapack_int ldb );
80lapack_int LAPACKE_dgetrf(
int matrix_layout, lapack_int m, lapack_int n,
81 double* a, lapack_int lda, lapack_int* ipiv );
83lapack_int LAPACKE_dgetri_work(
int matrix_layout, lapack_int n,
double* a,
84 lapack_int lda,
const lapack_int* ipiv,
85 double* work, lapack_int lwork );
87lapack_int LAPACKE_dsytrf_work(
int matrix_layout,
char uplo, lapack_int n,
88 double* a, lapack_int lda, lapack_int* ipiv,
89 double* work, lapack_int lwork );
91lapack_int LAPACKE_dsytri_work(
int matrix_layout,
char uplo, lapack_int n,
92 double* a, lapack_int lda,
93 const lapack_int* ipiv,
double* work );
95#elif YAC_LAPACK_INTERFACE_ID == 5
101#define LAPACK_COL_MAJOR 102
104lapack_int LAPACKE_dgels_work(
int matrix_layout,
char trans, lapack_int m,
105 lapack_int n, lapack_int nrhs,
double* a,
106 lapack_int lda,
double* b, lapack_int ldb,
107 double* work, lapack_int lwork );
110lapack_int LAPACKE_dgesv(
int matrix_layout, lapack_int n, lapack_int nrhs,
111 double* a, lapack_int lda, lapack_int* ipiv,
112 double* b, lapack_int ldb );
114lapack_int LAPACKE_dgetrf(
int matrix_layout, lapack_int m, lapack_int n,
115 double* a, lapack_int lda, lapack_int* ipiv );
117lapack_int LAPACKE_dgetri_work(
int matrix_layout, lapack_int n,
double* a,
118 lapack_int lda,
const lapack_int* ipiv,
119 double* work, lapack_int lwork );
121lapack_int LAPACKE_dsytrf_work(
int matrix_layout,
char uplo, lapack_int n,
122 double* a, lapack_int lda, lapack_int* ipiv,
123 double* work, lapack_int lwork );
125lapack_int LAPACKE_dsytri_work(
int matrix_layout,
char uplo, lapack_int n,
126 double* a, lapack_int lda,
127 const lapack_int* ipiv,
double* work );
131#error Unexpected value for YAC_LAPACK_INTERFACE_ID