1#ifndef SCALAPACK_CONNECTOR_H
2#define SCALAPACK_CONNECTOR_H
10 int numroc_(
const int *n,
const int *nb,
const int *iproc,
const int *srcproc,
const int *nprocs );
13 const int *m,
const int *n,
const int *mb,
const int *nb,
const int *irsrc,
const int *icsrc,
14 const int *
ictxt,
const int *lld,
int *info);
16 void pddot_(
int* n,
double* dot,
double* x,
int* ix,
int* jx,
int* descx,
int* incx,
17 double* y,
int* iy,
int* jy,
int* descy,
int* incy);
18 void pzdotc_(
int* n, std::complex<double>* dot, std::complex<double>* x,
int* ix,
int* jx,
int* descx,
int* incx,
19 std::complex<double>* y,
int* iy,
int* jy,
int* descy,
int* incy);
21 void pdpotrf_(
char *uplo,
int *n,
double *a,
int *ia,
int *ja,
int *desca,
int *info);
23 void pzpotrf_(
char *uplo,
int *n, std::complex<double> *a,
int *ia,
int *ja,
int *desca,
int *info);
26 const double* alpha,
const double* a,
const int* ia,
const int* ja,
const int* desca,
27 const double* beta,
double* c,
const int* ic,
const int* jc,
const int* descc);
30 const std::complex<double>* alpha,
const std::complex<double>* a,
const int* ia,
const int* ja,
const int* desca,
31 const std::complex<double> *beta , std::complex<double> *c ,
const int *ic ,
const int *jc ,
const int *descc);
35 const int *M,
const int *
N,
37 const std::complex<double> *A,
const int *IA,
const int *JA,
const int *DESCA,
38 const std::complex<double> *B,
const int *IB,
const int *JB,
const int *DESCB,
const int *K,
39 const double *beta, std::complex<double> *C,
const int *IC,
const int *JC,
const int *DESCC,
const int *L);
42 const int *M,
const int *
N,
44 const double *A,
const int *IA,
const int *JA,
const int *DESCA,
45 const double *B,
const int *IB,
const int *JB,
const int *DESCB,
const int *K,
46 const double *beta,
double *C,
const int *IC,
const int *JC,
const int *DESCC,
const int *L);
49 const char *transa,
const char *transb,
50 const int *M,
const int *
N,
const int *K,
52 const double *A,
const int *IA,
const int *JA,
const int *DESCA,
53 const double *B,
const int *IB,
const int *JB,
const int *DESCB,
55 double *C,
const int *IC,
const int *JC,
const int *DESCC);
57 const char *transa,
const char *transb,
58 const int *M,
const int *
N,
const int *K,
59 const std::complex<double> *alpha,
60 const std::complex<double> *A,
const int *IA,
const int *JA,
const int *DESCA,
61 const std::complex<double> *B,
const int *IB,
const int *JB,
const int *DESCB,
62 const std::complex<double> *beta,
63 std::complex<double> *C,
const int *IC,
const int *JC,
const int *DESCC);
64 void pdsymm_(
char *side ,
char *uplo ,
int *m ,
int *n ,
65 double *alpha ,
double *a ,
int *ia ,
int *ja ,
int *desca ,
66 double *b ,
int *ib ,
int *jb ,
int *descb ,
67 double *beta ,
double *c ,
int *ic ,
int *jc ,
int *descc );
68 void pdtrmm_(
char *side ,
char *uplo ,
char *transa ,
char *diag ,
int *m ,
int *n ,
69 double *alpha ,
double *a ,
int *ia ,
int *ja ,
int *desca ,
70 double *b ,
int *ib ,
int *jb ,
int *descb );
74 void pztrmm_(
char *side ,
char *uplo ,
char *transa ,
char *diag ,
int *m ,
int *n ,
75 std::complex<double> *alpha , std::complex<double> *a ,
int *ia ,
int *ja ,
int *desca ,
76 std::complex<double> *b ,
int *ib ,
int *jb ,
int *descb );
77 void pzhemm_(
char* side ,
char* uplo ,
int* m ,
int* n ,
78 std::complex<double>* alpha , std::complex<double>* a ,
int* ia ,
int* ja ,
int* desca ,
79 std::complex<double>* b ,
int* ib ,
int* jb ,
int* descb ,
80 std::complex<double>* beta , std::complex<double>* c ,
int* ic ,
int* jc ,
int* descc );
82 const int *M,
const int *
N,
83 std::complex<double> *A,
const int *IA,
const int *JA,
const int *DESCA,
84 int *ipiv,
int *info);
87 const int *n,
const int *nrhs,
88 const std::complex<double> *A,
const int *ia,
const int *ja,
const int *desca,
89 int *ipiv, std::complex<double>* B,
const int* ib,
const int* jb,
const int*descb,
const int *info
92 void pdsygvx_(
const int* itype,
const char* jobz,
const char* range,
const char* uplo,
93 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,
94 const double* vl,
const double* vu,
const int* il,
const int* iu,
95 const double* abstol,
int* m,
int* nz,
double* w,
const double*orfac,
double* Z,
const int* iz,
const int* jz,
const int*descz,
96 double* work,
int* lwork,
int*iwork,
int*liwork,
int* ifail,
int*iclustr,
double*gap,
int* info);
98 void pzhegvx_(
const int* itype,
const char* jobz,
const char* range,
const char* uplo,
99 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,
100 const double* vl,
const double* vu,
const int* il,
const int* iu,
101 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,
102 std::complex<double>* work,
int* lwork,
double* rwork,
int* lrwork,
int*iwork,
int*liwork,
int* ifail,
int*iclustr,
double*gap,
int* info);
104 void pssygvx_(
const int* itype,
const char* jobz,
const char* range,
const char* uplo,
105 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,
106 const float* vl,
const float* vu,
const int* il,
const int* iu,
107 const float* abstol,
int* m,
int* nz,
float* w,
const float*orfac,
float* Z,
const int* iz,
const int* jz,
const int*descz,
108 float* work,
int* lwork,
int*iwork,
int*liwork,
int* ifail,
int*iclustr,
float*gap,
int* info);
110 void pchegvx_(
const int* itype,
const char* jobz,
const char* range,
const char* uplo,
111 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,
112 const float* vl,
const float* vu,
const int* il,
const int* iu,
113 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,
114 std::complex<float>* work,
int* lwork,
float* rwork,
int* lrwork,
int*iwork,
int*liwork,
int* ifail,
int*iclustr,
float*gap,
int* info);
119 const std::complex<double> *A,
const int *ia,
const int *ja,
const int *desca,
120 int *ipiv,
const std::complex<double> *work,
const int *lwork,
const int *iwork,
const int *liwork,
const int *info);
124 const int *m,
const int *n,
125 const std::complex<double> *alpha,
126 const std::complex<double> *a,
const int *ia,
const int *ja,
const int *desca,
127 const std::complex<double> *beta,
128 const std::complex<double> *c,
const int *ic,
const int *jc,
const int *descc);
131 const int *M,
const int *
N,
132 const std::complex<double> *alpha,
133 const std::complex<double> *A,
const int *IA,
const int *JA,
const int *DESCA,
134 const std::complex<double> *beta,
135 std::complex<double> *C,
const int *IC,
const int *JC,
const int *DESCC);
138 double *A,
const int *IA,
const int *JA,
const int *DESCA,
139 double *B,
const int *IB,
const int *JB,
const int *DESCB,
143 std::complex<double> *A,
const int *IA,
const int *JA,
const int *DESCA,
144 std::complex<double> *B,
const int *IB,
const int *JB,
const int *DESCB,
154 void Cpigemr2d (
int m,
int n,
int *ptrmyblock,
int ia,
int ja,
int *ma,
int *ptrmynewblock,
int ib,
int jb,
int *mb,
int globcontext);
155 void Cpdgemr2d (
int m,
int n,
double *ptrmyblock,
int ia,
int ja,
int *ma,
double *ptrmynewblock,
int ib,
int jb,
int *mb,
int globcontext);
156 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);
157 void Cpsgemr2d (
int m,
int n,
float *ptrmyblock,
int ia,
int ja,
int *ma,
float *ptrmynewblock,
int ib,
int jb,
int *mb,
int globcontext);
158 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);
161 template <
typename T>
164 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;
185 template <
typename T>
186 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)
188 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);
189 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);
190 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);
191 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);
192 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);
202 const int m,
const int n,
203 const std::complex<double> alpha,
204 const std::complex<double> *a,
const int ia,
const int ja,
const int *desca,
205 const std::complex<double> beta,
206 const std::complex<double> *c,
const int ic,
const int jc,
const int *descc)
208 pzgeadd_(&transa, &m, &n, &alpha, a, &ia, &ja, desca, &beta, c, &ic, &jc, descc);
224 pddot_(&n, &
dot, a, &ia, &ja, desc, &inca, b, &ib, &jb, desc, &incb);
229 std::complex<double>& dotc,
230 std::complex<double>* a,
234 std::complex<double>* b,
240 pzdotc_(&n, &dotc, a, &ia, &ja, desc, &inca, b, &ib, &jb, desc, &incb);
245 const char transa,
const char transb,
246 const int M,
const int N,
const int K,
248 const double* A,
const int IA,
const int JA,
const int* DESCA,
249 const double* B,
const int IB,
const int JB,
const int* DESCB,
251 double* C,
const int IC,
const int JC,
const int* DESCC)
253 pdgemm_(&transa, &transb, &M, &
N, &K, &alpha, A, &IA, &JA, DESCA,
254 B, &IB, &JB, DESCB, &beta, C, &IC, &JC, DESCC);
259 const char transa,
const char transb,
260 const int M,
const int N,
const int K,
261 const std::complex<double> alpha,
262 const std::complex<double> *A,
const int IA,
const int JA,
const int *DESCA,
263 const std::complex<double> *B,
const int IB,
const int JB,
const int *DESCB,
264 const std::complex<double> beta,
265 std::complex<double> *C,
const int IC,
const int JC,
const int *DESCC)
267 pzgemm_(&transa, &transb, &M, &
N, &K, &alpha, A, &IA, &JA, DESCA,
268 B, &IB, &JB, DESCB, &beta, C, &IC, &JC, DESCC);
272 void gemm(
char transa,
char transb,
int M,
int N,
int K,
303 void gemm(
char transa,
char transb,
int M,
int N,
int K,
304 std::complex<double> alpha,
305 std::complex<double>* A,
306 std::complex<double>* B,
307 std::complex<double> beta,
308 std::complex<double>* C,
347 pdsymm_(&side, &uplo, &m, &n, &alpha, a, &isrc, &isrc, desc, b, &isrc, &isrc, desc, &beta, c, &isrc, &isrc, desc);
352 const int M,
const int N,
353 std::complex<double> *A,
const int IA,
const int JA,
const int *DESCA,
354 int *ipiv,
int *info)
356 pzgetrf_(&M, &
N, A, &IA, &JA, DESCA, ipiv, info);
362 const std::complex<double> *A,
const int ia,
const int ja,
const int *desca,
int *ipiv,
363 const std::complex<double> *work,
const int *lwork,
const int *iwork,
const int *liwork,
int *info)
365 pzgetri_(&n, A, &ia, &ja, desca, ipiv, work, lwork, iwork, liwork, info);
370 const int n,
const int nrhs,
371 const std::complex<double> *A,
const int ia,
const int ja,
const int *desca,
372 int *ipiv, std::complex<double>* B,
const int ib,
const int jb,
const int*descb,
int *info)
374 pzgesv_(&n, &nrhs, A, &ia, &ja, desca, ipiv, B, &ib, &jb, descb, info);
379 const int m,
const int n,
380 const std::complex<double> alpha , std::complex<double> *a ,
const int ia ,
const int ja ,
const int *desca,
381 const std::complex<double> beta , std::complex<double> *c ,
const int ic ,
const int jc ,
const int *descc)
383 pztranu_(&m, &n, &alpha, a, &ia, &ja, desca, &beta, c, &ic, &jc, descc);
387 int potrf(
char uplo,
int na,
double* U,
int* desc)
391 pdpotrf_(&uplo, &na, U, &isrc, &isrc, desc, &info);
396 int potrf(
char uplo,
int na, std::complex<double>* U,
int* desc)
400 pzpotrf_(&uplo, &na, U, &isrc, &isrc, desc, &info);
417 pdtrmm_(&side, &uplo, &trans, &diag, &m, &n, &alpha, a, &isrc, &isrc, desc, b, &isrc, &isrc, desc);
427 std::complex<double> alpha,
428 std::complex<double>* a,
429 std::complex<double>* b,
433 pztrmm_(&side, &uplo, &trans, &diag, &m, &n, &alpha, a, &isrc, &isrc, desc, b, &isrc, &isrc, desc);
440 std::complex<double> alpha,
441 std::complex<double>* a,
442 std::complex<double>* b,
443 std::complex<double> beta,
444 std::complex<double>* c,
Definition scalapack_connector.h:197
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:272
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:360
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:258
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:421
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:335
static int potrf(char uplo, int na, double *U, int *desc)
Definition scalapack_connector.h:387
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:244
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:200
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:228
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:303
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:378
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:405
static int potrf(char uplo, int na, std::complex< double > *U, int *desc)
Definition scalapack_connector.h:396
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:212
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:369
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:437
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:351
#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)
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:186
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)
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:163
static constexpr bool value
Definition scalapack_connector.h:164
int ictxt
Definition tddft_test.cpp:14