1#ifndef SCALAPACK_CONNECTOR_H
2#define SCALAPACK_CONNECTOR_H
27 int numroc_(
const int *n,
const int *nb,
const int *iproc,
const int *srcproc,
const int *nprocs );
30 const int *m,
const int *n,
const int *mb,
const int *nb,
const int *irsrc,
const int *icsrc,
31 const int *
ictxt,
const int *lld,
int *info);
33 void pddot_(
int* n,
double* dot,
double* x,
int* ix,
int* jx,
int* descx,
int* incx,
34 double* y,
int* iy,
int* jy,
int* descy,
int* incy);
35 void pzdotc_(
int* n, std::complex<double>* dot, std::complex<double>* x,
int* ix,
int* jx,
int* descx,
int* incx,
36 std::complex<double>* y,
int* iy,
int* jy,
int* descy,
int* incy);
38 void pdpotrf_(
char *uplo,
int *n,
double *a,
int *ia,
int *ja,
int *desca,
int *info);
40 void pzpotrf_(
char *uplo,
int *n, std::complex<double> *a,
int *ia,
int *ja,
int *desca,
int *info);
43 const double* alpha,
const double* a,
const int* ia,
const int* ja,
const int* desca,
44 const double* beta,
double* c,
const int* ic,
const int* jc,
const int* descc);
47 const std::complex<double>* alpha,
const std::complex<double>* a,
const int* ia,
const int* ja,
const int* desca,
48 const std::complex<double> *beta , std::complex<double> *c ,
const int *ic ,
const int *jc ,
const int *descc);
52 const int *M,
const int *
N,
54 const std::complex<double> *A,
const int *IA,
const int *JA,
const int *DESCA,
55 const std::complex<double> *B,
const int *IB,
const int *JB,
const int *DESCB,
const int *K,
56 const double *beta, std::complex<double> *C,
const int *IC,
const int *JC,
const int *DESCC,
const int *L);
59 const int *M,
const int *
N,
61 const double *A,
const int *IA,
const int *JA,
const int *DESCA,
62 const double *B,
const int *IB,
const int *JB,
const int *DESCB,
const int *K,
63 const double *beta,
double *C,
const int *IC,
const int *JC,
const int *DESCC,
const int *L);
66 const char *transa,
const char *transb,
67 const int *M,
const int *
N,
const int *K,
69 const double *A,
const int *IA,
const int *JA,
const int *DESCA,
70 const double *B,
const int *IB,
const int *JB,
const int *DESCB,
72 double *C,
const int *IC,
const int *JC,
const int *DESCC);
74 const char *transa,
const char *transb,
75 const int *M,
const int *
N,
const int *K,
76 const std::complex<double> *alpha,
77 const std::complex<double> *A,
const int *IA,
const int *JA,
const int *DESCA,
78 const std::complex<double> *B,
const int *IB,
const int *JB,
const int *DESCB,
79 const std::complex<double> *beta,
80 std::complex<double> *C,
const int *IC,
const int *JC,
const int *DESCC);
81 void pdsymm_(
char *side ,
char *uplo ,
int *m ,
int *n ,
82 double *alpha ,
double *a ,
int *ia ,
int *ja ,
int *desca ,
83 double *b ,
int *ib ,
int *jb ,
int *descb ,
84 double *beta ,
double *c ,
int *ic ,
int *jc ,
int *descc );
85 void pdtrmm_(
char *side ,
char *uplo ,
char *transa ,
char *diag ,
int *m ,
int *n ,
86 double *alpha ,
double *a ,
int *ia ,
int *ja ,
int *desca ,
87 double *b ,
int *ib ,
int *jb ,
int *descb );
91 void pztrmm_(
char *side ,
char *uplo ,
char *transa ,
char *diag ,
int *m ,
int *n ,
92 std::complex<double> *alpha , std::complex<double> *a ,
int *ia ,
int *ja ,
int *desca ,
93 std::complex<double> *b ,
int *ib ,
int *jb ,
int *descb );
94 void pzhemm_(
char* side ,
char* uplo ,
int* m ,
int* n ,
95 std::complex<double>* alpha , std::complex<double>* a ,
int* ia ,
int* ja ,
int* desca ,
96 std::complex<double>* b ,
int* ib ,
int* jb ,
int* descb ,
97 std::complex<double>* beta , std::complex<double>* c ,
int* ic ,
int* jc ,
int* descc );
99 const int *M,
const int *
N,
100 std::complex<double> *A,
const int *IA,
const int *JA,
const int *DESCA,
101 int *ipiv,
int *info);
104 const int *n,
const int *nrhs,
105 const std::complex<double> *A,
const int *ia,
const int *ja,
const int *desca,
106 int *ipiv, std::complex<double>* B,
const int* ib,
const int* jb,
const int*descb,
const int *info
109 void pdsygvx_(
const int* itype,
const char* jobz,
const char* range,
const char* uplo,
110 const int* n,
double* A,
const int* ia,
const int* ja,
const int*desca,
double* B,
const int* ib,
const int* jb,
const int*descb,
111 const double* vl,
const double* vu,
const int* il,
const int* iu,
112 const double* abstol,
int* m,
int* nz,
double* w,
const double*orfac,
double* Z,
const int* iz,
const int* jz,
const int*descz,
113 double* work,
int* lwork,
int*iwork,
int*liwork,
int* ifail,
int*iclustr,
double*gap,
int* info);
115 void pzhegvx_(
const int* itype,
const char* jobz,
const char* range,
const char* uplo,
116 const int* n, std::complex<double>* A,
const int* ia,
const int* ja,
const int*desca, std::complex<double>* B,
const int* ib,
const int* jb,
const int*descb,
117 const double* vl,
const double* vu,
const int* il,
const int* iu,
118 const double* abstol,
int* m,
int* nz,
double* w,
const double*orfac, std::complex<double>* Z,
const int* iz,
const int* jz,
const int*descz,
119 std::complex<double>* work,
int* lwork,
double* rwork,
int* lrwork,
int*iwork,
int*liwork,
int* ifail,
int*iclustr,
double*gap,
int* info);
121 void pssygvx_(
const int* itype,
const char* jobz,
const char* range,
const char* uplo,
122 const int* n,
float* A,
const int* ia,
const int* ja,
const int*desca,
float* B,
const int* ib,
const int* jb,
const int*descb,
123 const float* vl,
const float* vu,
const int* il,
const int* iu,
124 const float* abstol,
int* m,
int* nz,
float* w,
const float*orfac,
float* Z,
const int* iz,
const int* jz,
const int*descz,
125 float* work,
int* lwork,
int*iwork,
int*liwork,
int* ifail,
int*iclustr,
float*gap,
int* info);
127 void pchegvx_(
const int* itype,
const char* jobz,
const char* range,
const char* uplo,
128 const int* n, std::complex<float>* A,
const int* ia,
const int* ja,
const int*desca, std::complex<float>* B,
const int* ib,
const int* jb,
const int*descb,
129 const float* vl,
const float* vu,
const int* il,
const int* iu,
130 const float* abstol,
int* m,
int* nz,
float* w,
const float*orfac, std::complex<float>* Z,
const int* iz,
const int* jz,
const int*descz,
131 std::complex<float>* work,
int* lwork,
float* rwork,
int* lrwork,
int*iwork,
int*liwork,
int* ifail,
int*iclustr,
float*gap,
int* info);
136 const std::complex<double> *A,
const int *ia,
const int *ja,
const int *desca,
137 int *ipiv,
const std::complex<double> *work,
const int *lwork,
const int *iwork,
const int *liwork,
const int *info);
141 const int *m,
const int *n,
142 const std::complex<double> *alpha,
143 const std::complex<double> *a,
const int *ia,
const int *ja,
const int *desca,
144 const std::complex<double> *beta,
145 const std::complex<double> *c,
const int *ic,
const int *jc,
const int *descc);
148 const int *M,
const int *
N,
149 const std::complex<double> *alpha,
150 const std::complex<double> *A,
const int *IA,
const int *JA,
const int *DESCA,
151 const std::complex<double> *beta,
152 std::complex<double> *C,
const int *IC,
const int *JC,
const int *DESCC);
155 double *A,
const int *IA,
const int *JA,
const int *DESCA,
156 double *B,
const int *IB,
const int *JB,
const int *DESCB,
160 std::complex<double> *A,
const int *IA,
const int *JA,
const int *DESCA,
161 std::complex<double> *B,
const int *IB,
const int *JB,
const int *DESCB,
171 void Cpigemr2d (
int m,
int n,
int *ptrmyblock,
int ia,
int ja,
int *ma,
int *ptrmynewblock,
int ib,
int jb,
int *mb,
int globcontext);
172 void Cpdgemr2d (
int m,
int n,
double *ptrmyblock,
int ia,
int ja,
int *ma,
double *ptrmynewblock,
int ib,
int jb,
int *mb,
int globcontext);
173 void Cpzgemr2d (
int m,
int n, std::complex<double> *ptrmyblock,
int ia,
int ja,
int *ma, std::complex<double> *ptrmynewblock,
int ib,
int jb,
int *mb,
int globcontext);
174 void Cpsgemr2d (
int m,
int n,
float *ptrmyblock,
int ia,
int ja,
int *ma,
float *ptrmynewblock,
int ib,
int jb,
int *mb,
int globcontext);
175 void Cpcgemr2d (
int m,
int n, std::complex<float> *ptrmyblock,
int ia,
int ja,
int *ma, std::complex<float> *ptrmynewblock,
int ib,
int jb,
int *mb,
int globcontext);
178 template <
typename T>
181 constexpr static bool value = std::is_same<T, double>::value || std::is_same<T, std::complex<double>>
::value || std::is_same<T, float>::value || std::is_same<T, std::complex<float>>
::value || std::is_same<T, int>::value;
202 template <
typename T>
203 typename std::enable_if<block2d_data_type<T>::value,
void>::type
Cpxgemr2d(
int M,
int N,
T *A,
int IA,
int JA,
int *DESCA,
T *B,
int IB,
int JB,
int *DESCB,
int ICTXT)
205 if (std::is_same<T,double>::value)
Cpdgemr2d(M,
N,
reinterpret_cast<double*
>(A),IA, JA, DESCA,
reinterpret_cast<double*
>(B),IB,JB, DESCB,ICTXT);
206 if (std::is_same<
T,std::complex<double>>::value)
Cpzgemr2d(M,
N,
reinterpret_cast<std::complex<double>*
>(A),IA, JA, DESCA,
reinterpret_cast<std::complex<double>*
>(B),IB,JB, DESCB,ICTXT);
207 if (std::is_same<T,float>::value)
Cpsgemr2d(M,
N,
reinterpret_cast<float*
>(A),IA, JA, DESCA,
reinterpret_cast<float*
>(B),IB,JB, DESCB,ICTXT);
208 if (std::is_same<
T,std::complex<float>>::value)
Cpcgemr2d(M,
N,
reinterpret_cast<std::complex<float>*
>(A),IA, JA, DESCA,
reinterpret_cast<std::complex<float>*
>(B),IB,JB, DESCB,ICTXT);
209 if (std::is_same<T,int>::value)
Cpigemr2d(M,
N,
reinterpret_cast<int*
>(A),IA, JA, DESCA,
reinterpret_cast<int*
>(B),IB,JB, DESCB,ICTXT);
219 const int m,
const int n,
220 const std::complex<double> alpha,
221 const std::complex<double> *a,
const int ia,
const int ja,
const int *desca,
222 const std::complex<double> beta,
223 const std::complex<double> *c,
const int ic,
const int jc,
const int *descc)
225 pzgeadd_(&transa, &m, &n, &alpha, a, &ia, &ja, desca, &beta, c, &ic, &jc, descc);
241 pddot_(&n, &
dot, a, &ia, &ja, desc, &inca, b, &ib, &jb, desc, &incb);
246 std::complex<double>& dotc,
247 std::complex<double>* a,
251 std::complex<double>* b,
257 pzdotc_(&n, &dotc, a, &ia, &ja, desc, &inca, b, &ib, &jb, desc, &incb);
262 const char transa,
const char transb,
263 const int M,
const int N,
const int K,
265 const double* A,
const int IA,
const int JA,
const int* DESCA,
266 const double* B,
const int IB,
const int JB,
const int* DESCB,
268 double* C,
const int IC,
const int JC,
const int* DESCC)
270 pdgemm_(&transa, &transb, &M, &
N, &K, &alpha, A, &IA, &JA, DESCA,
271 B, &IB, &JB, DESCB, &beta, C, &IC, &JC, DESCC);
276 const char transa,
const char transb,
277 const int M,
const int N,
const int K,
278 const std::complex<double> alpha,
279 const std::complex<double> *A,
const int IA,
const int JA,
const int *DESCA,
280 const std::complex<double> *B,
const int IB,
const int JB,
const int *DESCB,
281 const std::complex<double> beta,
282 std::complex<double> *C,
const int IC,
const int JC,
const int *DESCC)
284 pzgemm_(&transa, &transb, &M, &
N, &K, &alpha, A, &IA, &JA, DESCA,
285 B, &IB, &JB, DESCB, &beta, C, &IC, &JC, DESCC);
289 void gemm(
char transa,
char transb,
int M,
int N,
int K,
320 void gemm(
char transa,
char transb,
int M,
int N,
int K,
321 std::complex<double> alpha,
322 std::complex<double>* A,
323 std::complex<double>* B,
324 std::complex<double> beta,
325 std::complex<double>* C,
364 pdsymm_(&side, &uplo, &m, &n, &alpha, a, &isrc, &isrc, desc, b, &isrc, &isrc, desc, &beta, c, &isrc, &isrc, desc);
369 const int M,
const int N,
370 std::complex<double> *A,
const int IA,
const int JA,
const int *DESCA,
371 int *ipiv,
int *info)
373 pzgetrf_(&M, &
N, A, &IA, &JA, DESCA, ipiv, info);
379 const std::complex<double> *A,
const int ia,
const int ja,
const int *desca,
int *ipiv,
380 const std::complex<double> *work,
const int *lwork,
const int *iwork,
const int *liwork,
int *info)
382 pzgetri_(&n, A, &ia, &ja, desca, ipiv, work, lwork, iwork, liwork, info);
387 const int n,
const int nrhs,
388 const std::complex<double> *A,
const int ia,
const int ja,
const int *desca,
389 int *ipiv, std::complex<double>* B,
const int ib,
const int jb,
const int*descb,
int *info)
391 pzgesv_(&n, &nrhs, A, &ia, &ja, desca, ipiv, B, &ib, &jb, descb, info);
396 const int m,
const int n,
397 const std::complex<double> alpha , std::complex<double> *a ,
const int ia ,
const int ja ,
const int *desca,
398 const std::complex<double> beta , std::complex<double> *c ,
const int ic ,
const int jc ,
const int *descc)
400 pztranu_(&m, &n, &alpha, a, &ia, &ja, desca, &beta, c, &ic, &jc, descc);
404 int potrf(
char uplo,
int na,
double* U,
int* desc)
408 pdpotrf_(&uplo, &na, U, &isrc, &isrc, desc, &info);
413 int potrf(
char uplo,
int na, std::complex<double>* U,
int* desc)
417 pzpotrf_(&uplo, &na, U, &isrc, &isrc, desc, &info);
434 pdtrmm_(&side, &uplo, &trans, &diag, &m, &n, &alpha, a, &isrc, &isrc, desc, b, &isrc, &isrc, desc);
444 std::complex<double> alpha,
445 std::complex<double>* a,
446 std::complex<double>* b,
450 pztrmm_(&side, &uplo, &trans, &diag, &m, &n, &alpha, a, &isrc, &isrc, desc, b, &isrc, &isrc, desc);
457 std::complex<double> alpha,
458 std::complex<double>* a,
459 std::complex<double>* b,
460 std::complex<double> beta,
461 std::complex<double>* c,
Definition scalapack_connector.h:214
static void gemm(char transa, char transb, int M, int N, int K, double alpha, double *A, double *B, double beta, double *C, int *DESC)
Definition scalapack_connector.h:289
static void getri(const int n, const std::complex< double > *A, const int ia, const int ja, const int *desca, int *ipiv, const std::complex< double > *work, const int *lwork, const int *iwork, const int *liwork, int *info)
Definition scalapack_connector.h:377
static void gemm(const char transa, const char transb, const int M, const int N, const int K, const std::complex< double > alpha, const std::complex< double > *A, const int IA, const int JA, const int *DESCA, const std::complex< double > *B, const int IB, const int JB, const int *DESCB, const std::complex< double > beta, std::complex< double > *C, const int IC, const int JC, const int *DESCC)
Definition scalapack_connector.h:275
static void trmm(char side, char uplo, char trans, char diag, int m, int n, std::complex< double > alpha, std::complex< double > *a, std::complex< double > *b, int *desc)
Definition scalapack_connector.h:438
static void symm(char side, char uplo, int m, int n, double alpha, double *a, double *b, double beta, double *c, int *desc)
Definition scalapack_connector.h:352
static int potrf(char uplo, int na, double *U, int *desc)
Definition scalapack_connector.h:404
static void gemm(const char transa, const char transb, const int M, const int N, const int K, const double alpha, const double *A, const int IA, const int JA, const int *DESCA, const double *B, const int IB, const int JB, const int *DESCB, const double beta, double *C, const int IC, const int JC, const int *DESCC)
Definition scalapack_connector.h:261
static void geadd(const char transa, const int m, const int n, const std::complex< double > alpha, const std::complex< double > *a, const int ia, const int ja, const int *desca, const std::complex< double > beta, const std::complex< double > *c, const int ic, const int jc, const int *descc)
Definition scalapack_connector.h:217
static void dot(int n, std::complex< double > &dotc, std::complex< double > *a, int ia, int ja, int inca, std::complex< double > *b, int ib, int jb, int incb, int *desc)
Definition scalapack_connector.h:245
static void gemm(char transa, char transb, int M, int N, int K, std::complex< double > alpha, std::complex< double > *A, std::complex< double > *B, std::complex< double > beta, std::complex< double > *C, int *DESC)
Definition scalapack_connector.h:320
static void tranu(const int m, const int n, const std::complex< double > alpha, std::complex< double > *a, const int ia, const int ja, const int *desca, const std::complex< double > beta, std::complex< double > *c, const int ic, const int jc, const int *descc)
Definition scalapack_connector.h:395
static void trmm(char side, char uplo, char trans, char diag, int m, int n, double alpha, double *a, double *b, int *desc)
Definition scalapack_connector.h:422
static int potrf(char uplo, int na, std::complex< double > *U, int *desc)
Definition scalapack_connector.h:413
static void dot(int n, double &dot, double *a, int ia, int ja, int inca, double *b, int ib, int jb, int incb, int *desc)
Definition scalapack_connector.h:229
static void gesv(const int n, const int nrhs, const std::complex< double > *A, const int ia, const int ja, const int *desca, int *ipiv, std::complex< double > *B, const int ib, const int jb, const int *descb, int *info)
Definition scalapack_connector.h:386
static void hemm(char side, char uplo, int na, std::complex< double > alpha, std::complex< double > *a, std::complex< double > *b, std::complex< double > beta, std::complex< double > *c, int *desc)
Definition scalapack_connector.h:454
static void getrf(const int M, const int N, std::complex< double > *A, const int IA, const int JA, const int *DESCA, int *ipiv, int *info)
Definition scalapack_connector.h:368
#define N
Definition exp.cpp:24
#define T
Definition exp.cpp:237
void Cpigemr2d(int m, int n, int *ptrmyblock, int ia, int ja, int *ma, int *ptrmynewblock, int ib, int jb, int *mb, int globcontext)
void pztrmm_(char *side, char *uplo, char *transa, char *diag, int *m, int *n, std::complex< double > *alpha, std::complex< double > *a, int *ia, int *ja, int *desca, std::complex< double > *b, int *ib, int *jb, int *descb)
constexpr double SCALAPACK_ABSTOL
Definition scalapack_connector.h:16
void Cpzgemr2d(int m, int n, std::complex< double > *ptrmyblock, int ia, int ja, int *ma, std::complex< double > *ptrmynewblock, int ib, int jb, int *mb, int globcontext)
void pchegvx_(const int *itype, const char *jobz, const char *range, const char *uplo, const int *n, std::complex< float > *A, const int *ia, const int *ja, const int *desca, std::complex< float > *B, const int *ib, const int *jb, const int *descb, const float *vl, const float *vu, const int *il, const int *iu, const float *abstol, int *m, int *nz, float *w, const float *orfac, std::complex< float > *Z, const int *iz, const int *jz, const int *descz, std::complex< float > *work, int *lwork, float *rwork, int *lrwork, int *iwork, int *liwork, int *ifail, int *iclustr, float *gap, int *info)
void pzgetri_(const int *n, const std::complex< double > *A, const int *ia, const int *ja, const int *desca, int *ipiv, const std::complex< double > *work, const int *lwork, const int *iwork, const int *liwork, const int *info)
void pzgemr2d_(const int *M, const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, std::complex< double > *B, const int *IB, const int *JB, const int *DESCB, const int *ICTXT)
void Cpcgemr2d(int m, int n, std::complex< float > *ptrmyblock, int ia, int ja, int *ma, std::complex< float > *ptrmynewblock, int ib, int jb, int *mb, int globcontext)
void pdpotrf_(char *uplo, int *n, double *a, int *ia, int *ja, int *desca, int *info)
int numroc_(const int *n, const int *nb, const int *iproc, const int *srcproc, const int *nprocs)
void Cpdgemr2d(int m, int n, double *ptrmyblock, int ia, int ja, int *ma, double *ptrmynewblock, int ib, int jb, int *mb, int globcontext)
void pdgemv_(const char *transa, const int *M, const int *N, const double *alpha, const double *A, const int *IA, const int *JA, const int *DESCA, const double *B, const int *IB, const int *JB, const int *DESCB, const int *K, const double *beta, double *C, const int *IC, const int *JC, const int *DESCC, const int *L)
void pztranc_(const int *M, const int *N, const std::complex< double > *alpha, const std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, const std::complex< double > *beta, std::complex< double > *C, const int *IC, const int *JC, const int *DESCC)
void pdsygvx_(const int *itype, const char *jobz, const char *range, const char *uplo, const int *n, double *A, const int *ia, const int *ja, const int *desca, double *B, const int *ib, const int *jb, const int *descb, const double *vl, const double *vu, const int *il, const int *iu, const double *abstol, int *m, int *nz, double *w, const double *orfac, double *Z, const int *iz, const int *jz, const int *descz, double *work, int *lwork, int *iwork, int *liwork, int *ifail, int *iclustr, double *gap, int *info)
void pzhegvx_(const int *itype, const char *jobz, const char *range, const char *uplo, const int *n, std::complex< double > *A, const int *ia, const int *ja, const int *desca, std::complex< double > *B, const int *ib, const int *jb, const int *descb, const double *vl, const double *vu, const int *il, const int *iu, const double *abstol, int *m, int *nz, double *w, const double *orfac, std::complex< double > *Z, const int *iz, const int *jz, const int *descz, std::complex< double > *work, int *lwork, double *rwork, int *lrwork, int *iwork, int *liwork, int *ifail, int *iclustr, double *gap, int *info)
void pdtran_(const int *m, const int *n, const double *alpha, const double *a, const int *ia, const int *ja, const int *desca, const double *beta, double *c, const int *ic, const int *jc, const int *descc)
void pzpotrf_(char *uplo, int *n, std::complex< double > *a, int *ia, int *ja, int *desca, int *info)
void pddot_(int *n, double *dot, double *x, int *ix, int *jx, int *descx, int *incx, double *y, int *iy, int *jy, int *descy, int *incy)
void pzdotc_(int *n, std::complex< double > *dot, std::complex< double > *x, int *ix, int *jx, int *descx, int *incx, std::complex< double > *y, int *iy, int *jy, int *descy, int *incy)
void pdgemm_(const char *transa, const char *transb, const int *M, const int *N, const int *K, const double *alpha, const double *A, const int *IA, const int *JA, const int *DESCA, const double *B, const int *IB, const int *JB, const int *DESCB, const double *beta, double *C, const int *IC, const int *JC, const int *DESCC)
void pzgemm_(const char *transa, const char *transb, const int *M, const int *N, const int *K, const std::complex< double > *alpha, const std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, const std::complex< double > *B, const int *IB, const int *JB, const int *DESCB, const std::complex< double > *beta, std::complex< double > *C, const int *IC, const int *JC, const int *DESCC)
void pzgemv_(const char *transa, const int *M, const int *N, const double *alpha, const std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, const std::complex< double > *B, const int *IB, const int *JB, const int *DESCB, const int *K, const double *beta, std::complex< double > *C, const int *IC, const int *JC, const int *DESCC, const int *L)
void pdtrmm_(char *side, char *uplo, char *transa, char *diag, int *m, int *n, double *alpha, double *a, int *ia, int *ja, int *desca, double *b, int *ib, int *jb, int *descb)
void descinit_(int *desc, const int *m, const int *n, const int *mb, const int *nb, const int *irsrc, const int *icsrc, const int *ictxt, const int *lld, int *info)
void pzgesv_(const int *n, const int *nrhs, const std::complex< double > *A, const int *ia, const int *ja, const int *desca, int *ipiv, std::complex< double > *B, const int *ib, const int *jb, const int *descb, const int *info)
std::enable_if< block2d_data_type< T >::value, void >::type Cpxgemr2d(int M, int N, T *A, int IA, int JA, int *DESCA, T *B, int IB, int JB, int *DESCB, int ICTXT)
Definition scalapack_connector.h:203
void pztranu_(const int *m, const int *n, const std::complex< double > *alpha, const std::complex< double > *a, const int *ia, const int *ja, const int *desca, const std::complex< double > *beta, std::complex< double > *c, const int *ic, const int *jc, const int *descc)
void pdgemr2d_(const int *M, const int *N, double *A, const int *IA, const int *JA, const int *DESCA, double *B, const int *IB, const int *JB, const int *DESCB, const int *ICTXT)
void pdsymm_(char *side, char *uplo, int *m, int *n, double *alpha, double *a, int *ia, int *ja, int *desca, double *b, int *ib, int *jb, int *descb, double *beta, double *c, int *ic, int *jc, int *descc)
void pzgeadd_(const char *transa, const int *m, const int *n, const std::complex< double > *alpha, const std::complex< double > *a, const int *ia, const int *ja, const int *desca, const std::complex< double > *beta, const std::complex< double > *c, const int *ic, const int *jc, const int *descc)
void pssygvx_(const int *itype, const char *jobz, const char *range, const char *uplo, const int *n, float *A, const int *ia, const int *ja, const int *desca, float *B, const int *ib, const int *jb, const int *descb, const float *vl, const float *vu, const int *il, const int *iu, const float *abstol, int *m, int *nz, float *w, const float *orfac, float *Z, const int *iz, const int *jz, const int *descz, float *work, int *lwork, int *iwork, int *liwork, int *ifail, int *iclustr, float *gap, int *info)
constexpr double SCALAPACK_ORFAC
Definition scalapack_connector.h:17
void Cpsgemr2d(int m, int n, float *ptrmyblock, int ia, int ja, int *ma, float *ptrmynewblock, int ib, int jb, int *mb, int globcontext)
void pzhemm_(char *side, char *uplo, int *m, int *n, std::complex< double > *alpha, std::complex< double > *a, int *ia, int *ja, int *desca, std::complex< double > *b, int *ib, int *jb, int *descb, std::complex< double > *beta, std::complex< double > *c, int *ic, int *jc, int *descc)
void pzgetrf_(const int *M, const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, int *ipiv, int *info)
Definition scalapack_connector.h:180
static constexpr bool value
Definition scalapack_connector.h:181
int ictxt
Definition tddft_test.cpp:14