16#ifndef dftefeScalapackTemplates_h
17#define dftefeScalapackTemplates_h
42 namespace linearAlgebra
191 std::complex<double> *A,
224 std::complex<double> *A,
258 std::complex<double> *A,
293 std::complex<double> *A,
334 std::complex<double> *A,
339 std::complex<double> *work,
376 std::complex<double> *A,
591 const std::complex<double> *alpha,
592 const std::complex<double> *A,
596 const std::complex<double> *B,
600 const std::complex<double> *beta,
601 std::complex<double> * C,
689 std::complex<double> *A,
694 std::complex<double> *z,
698 std::complex<double> *work,
795 const double *abstol,
847 std::complex<double> *A,
855 const double * abstol,
860 std::complex<double> *Z,
864 std::complex<double> *work,
999 const std::complex<double> *alpha,
1000 const std::complex<double> *A,
1004 const std::complex<double> *beta,
1005 std::complex<double> * C,
1017 const double *alpha,
1102 std::complex<double> *A,
1113 std::complex<double> *Z,
1117 std::complex<double> *work,
1130 template <
typename number>
1141 "Function in ScalapackTemplates.h not implemented");
1145 Cgerv2d(
int context,
int M,
int N,
double *A,
int lda,
int rsrc,
int csrc)
1147 Cdgerv2d(context, M, N, A, lda, rsrc, csrc);
1151 Cgerv2d(
int context,
int M,
int N,
float *A,
int lda,
int rsrc,
int csrc)
1153 Csgerv2d(context, M, N, A, lda, rsrc, csrc);
1157 template <
typename number>
1168 "Function in ScalapackTemplates.h not implemented");
1172 Cgesd2d(
int context,
int M,
int N,
double *A,
int lda,
int rdest,
int cdest)
1174 Cdgesd2d(context, M, N, A, lda, rdest, cdest);
1178 Cgesd2d(
int context,
int M,
int N,
float *A,
int lda,
int rdest,
int cdest)
1180 Csgesd2d(context, M, N, A, lda, rdest, cdest);
1194 std::complex<double> *A,
1200 pzlacgv_(N, A, IA, JA, DESCA, INCX);
1203 template <
typename number>
1214 "Function in ScalapackTemplates.h not implemented");
1226 pdpotrf_(UPLO, N, A, IA, JA, DESCA, INFO);
1238 pspotrf_(UPLO, N, A, IA, JA, DESCA, INFO);
1244 std::complex<double> *A,
1250 pzpotrf_(UPLO, N, A, IA, JA, DESCA, INFO);
1253 template <
typename number>
1265 "Function in ScalapackTemplates.h not implemented");
1278 pdgetrf_(m, n, A, IA, JA, DESCA, ipiv, INFO);
1291 psgetrf_(m, n, A, IA, JA, DESCA, ipiv, INFO);
1297 std::complex<double> *A,
1304 pzgetrf_(m, n, A, IA, JA, DESCA, ipiv, INFO);
1307 template <
typename number>
1318 "Function in ScalapackTemplates.h not implemented");
1330 pdpotri_(UPLO, N, A, IA, JA, DESCA, INFO);
1342 pspotri_(UPLO, N, A, IA, JA, DESCA, INFO);
1348 std::complex<double> *A,
1354 pzpotri_(UPLO, N, A, IA, JA, DESCA, INFO);
1357 template <
typename number>
1372 "Function in ScalapackTemplates.h not implemented");
1388 pdgetri_(N, A, IA, JA, DESCA, ipiv, work, lwork, iwork, liwork, info);
1404 psgetri_(N, A, IA, JA, DESCA, ipiv, work, lwork, iwork, liwork, info);
1409 std::complex<double> *A,
1414 std::complex<double> *work,
1420 pzgetri_(N, A, IA, JA, DESCA, ipiv, work, lwork, iwork, liwork, info);
1425 template <
typename number>
1437 "Function in ScalapackTemplates.h not implemented");
1450 pdtrtri_(UPLO, DIAG, N, A, IA, JA, DESCA, INFO);
1463 pstrtri_(UPLO, DIAG, N, A, IA, JA, DESCA, INFO);
1470 std::complex<double> *A,
1476 pztrtri_(UPLO, DIAG, N, A, IA, JA, DESCA, INFO);
1479 template <
typename number>
1496 "Function in ScalapackTemplates.h not implemented");
1506 const double *ANORM,
1560 template <
typename number>
1572 "Function in ScalapackTemplates.h not implemented");
1585 return pdlansy_(norm, uplo, N, A, IA, JA, DESCA, work);
1598 return pslansy_(norm, uplo, N, A, IA, JA, DESCA, work);
1602 template <
typename number>
1618 "Function in ScalapackTemplates.h not implemented");
1635 pdgesv_(n, nrhs, A, ia, ja, desca, ipiv, B, ib, jb, descb, info);
1652 psgesv_(n, nrhs, A, ia, ja, desca, ipiv, B, ib, jb, descb, info);
1656 template <
typename number>
1679 "Function in ScalapackTemplates.h not implemented");
1684 const char * transb,
1688 const double *alpha,
1726 const char * transb,
1769 const char * transb,
1773 const std::complex<double> *alpha,
1774 const std::complex<double> *A,
1778 const std::complex<double> *B,
1782 const std::complex<double> *beta,
1783 std::complex<double> * C,
1809 template <
typename number>
1821 "Function in ScalapackTemplates.h not implemented");
1834 return pdlange_(norm, m, n, A, ia, ja, desca, work);
1847 return pslange_(norm, m, n, A, ia, ja, desca, work);
1851 template <
typename number>
1870 "Function in ScalapackTemplates.h not implemented");
1945 std::complex<double> *A,
1950 std::complex<double> *z,
1954 std::complex<double> *work,
1975 template <
typename number>
1990 "Function in ScalapackTemplates.h not implemented");
2006 pdlacpy_(uplo, m, n, A, ia, ja, desca, B, ib, jb, descb);
2022 pslacpy_(uplo, m, n, A, ia, ja, desca, B, ib, jb, descb);
2026 template <
typename number>
2041 "Function in ScalapackTemplates.h not implemented");
2057 pdgemr2d_(m, n, A, ia, ja, desca, B, ib, jb, descb, ictxt);
2073 psgemr2d_(m, n, A, ia, ja, desca, B, ib, jb, descb, ictxt);
2077 template <
typename number>
2079 plamch(
const int * ,
const char * , number & )
2082 "Function in ScalapackTemplates.h not implemented");
2086 plamch(
const int *ictxt,
const char *cmach,
double &val)
2092 plamch(
const int *ictxt,
const char *cmach,
float &val)
2098 template <
typename number>
2131 "Function in ScalapackTemplates.h not implemented");
2263 std::complex<double> *A,
2276 std::complex<double> *Z,
2280 std::complex<double> *work,
2320 template <
typename number>
2344 "Function in ScalapackTemplates.h not implemented");
2436 template <
typename number>
2455 "Function in ScalapackTemplates.h not implemented");
2527 template <
typename number>
2544 "Function in ScalapackTemplates.h not implemented");
2551 const double *alpha,
2562 pdgeadd_(transa, m, n, alpha, A, IA, JA, DESCA, beta, C, IC, JC, DESCC);
2580 psgeadd_(transa, m, n, alpha, A, IA, JA, DESCA, beta, C, IC, JC, DESCC);
2587 const std::complex<double> *alpha,
2588 const std::complex<double> *A,
2592 const std::complex<double> *beta,
2593 std::complex<double> * C,
2598 pzgeadd_(transa, m, n, alpha, A, IA, JA, DESCA, beta, C, IC, JC, DESCC);
2601 template <
typename number>
2617 "Function in ScalapackTemplates.h not implemented");
2623 const double *alpha,
2634 pdtran_(m, n, alpha, A, IA, JA, DESCA, beta, C, IC, JC, DESCC);
2651 pstran_(m, n, alpha, A, IA, JA, DESCA, beta, C, IC, JC, DESCC);
2655 template <
typename number>
2683 "Function in ScalapackTemplates.h not implemented");
2795 std::complex<double> *A,
2806 std::complex<double> *Z,
2810 std::complex<double> *work,
2845 return static_cast<int>(work[0]);
2851 return static_cast<int>(work[0]);
2857 return static_cast<int>(work[0].real());
void pplacgv(const int *N, double *A, const int *IA, const int *JA, const int *DESCA, const int *INCX)
Definition: ScalapackTemplates.h:1184
void pzgetri_(const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, const int *ipiv, std::complex< double > *work, int *lwork, int *iwork, int *liwork, int *info)
void psyevr(const char *, const char *, const char *, const int *, number *, const int *, const int *, const int *, const number *, const number *, const int *, const int *, int *, int *, number *, number *, const int *, const int *, const int *, number *, int *, int *, int *, int *)
Definition: ScalapackTemplates.h:2657
void pgels(const char *, const int *, const int *, const int *, number *, const int *, const int *, const int *, number *, const int *, const int *, const int *, number *, int *, int *)
Definition: ScalapackTemplates.h:2438
double pdlange_(char const *norm, const int *m, const int *n, const double *A, const int *ia, const int *ja, const int *desca, double *work)
int lworkFromWork(std::vector< double > &work)
Definition: ScalapackTemplates.h:2843
void Cdgerv2d(int context, int M, int N, double *A, int lda, int rsrc, int csrc)
void pzlacgv_(const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, const int *INCX)
float pslamch_(const int *ictxt, const char *cmach)
void pdlacpy_(const char *uplo, const int *m, const int *n, const double *A, const int *ia, const int *ja, const int *desca, double *B, const int *ib, const int *jb, const int *descb)
void pgetri(const int *, number *, const int *, const int *, const int *, const int *, number *, int *, int *, int *, int *)
Definition: ScalapackTemplates.h:1359
void pspocon_(const char *uplo, const int *N, const float *A, const int *IA, const int *JA, const int *DESCA, const float *ANORM, float *RCOND, float *WORK, const int *LWORK, int *IWORK, const int *LIWORK, int *INFO)
void pdgetri_(const int *N, double *A, const int *IA, const int *JA, const int *DESCA, const int *ipiv, double *work, int *lwork, int *iwork, int *liwork, int *info)
void pzpotrf_(const char *UPLO, const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
int ilcm_(const int *M, const int *N)
void pdgeadd_(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 *beta, double *C, const int *IC, const int *JC, const int *DESCC)
number plansy(const char *, const char *, const int *, const number *, const int *, const int *, const int *, number *)
Definition: ScalapackTemplates.h:1562
int iceil_(const int *i1, const int *i2)
void ppotri(const char *, const int *, number *, const int *, const int *, const int *, int *)
Definition: ScalapackTemplates.h:1309
void psgesv_(const int *n, const int *nrhs, float *A, const int *ia, const int *ja, const int *desca, int *ipiv, float *B, const int *ib, const int *jb, const int *descb, int *info)
void pdpocon_(const char *uplo, const int *N, const double *A, const int *IA, const int *JA, const int *DESCA, const double *ANORM, double *RCOND, double *WORK, const int *LWORK, int *IWORK, const int *LIWORK, int *INFO)
void Cgesd2d(int, int, int, number *, int, int, int)
Definition: ScalapackTemplates.h:1159
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)
void pdgels_(const char *trans, const int *m, const int *n, const int *nrhs, double *A, const int *ia, const int *ja, const int *desca, double *B, const int *ib, const int *jb, const int *descb, double *work, int *lwork, int *info)
void pgesvd(const char *, const char *, const int *, const int *, number *, const int *, const int *, const int *, number *, number *, const int *, const int *, const int *, number *, const int *, const int *, const int *, number *, int *, int *)
Definition: ScalapackTemplates.h:2322
void Cblacs_gridinit(int *context, const char *order, int grid_height, int grid_width)
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 pdgetrf_(const int *m, const int *n, double *A, const int *IA, const int *JA, const int *DESCA, int *ipiv, int *INFO)
void psgemr2d_(const int *m, const int *n, const float *A, const int *ia, const int *ja, const int *desca, float *B, const int *ib, const int *jb, const int *descb, const int *ictxt)
void pdsyevr_(const char *jobz, const char *range, const char *uplo, const int *n, double *A, const int *IA, const int *JA, const int *DESCA, const double *VL, const double *VU, const int *IL, const int *IU, int *m, int *nz, double *w, double *Z, const int *IZ, const int *JZ, const int *DESCZ, double *work, int *lwork, int *iwork, int *liwork, int *info)
void pgemr2d(const int *, const int *, const number *, const int *, const int *, const int *, number *, const int *, const int *, const int *, const int *)
Definition: ScalapackTemplates.h:2028
void pgesv(const int *, const int *, number *, const int *, const int *, const int *, int *, number *, const int *, const int *, const int *, int *)
Definition: ScalapackTemplates.h:1604
void Csgerv2d(int context, int M, int N, float *A, int lda, int rsrc, int csrc)
void ptran(const int *, const int *, const number *, const number *, const int *, const int *, const int *, const number *, number *, const int *, const int *, const int *)
Definition: ScalapackTemplates.h:2603
void psgeadd_(const char *transa, const int *m, const int *n, const float *alpha, const float *A, const int *IA, const int *JA, const int *DESCA, const float *beta, float *C, const int *IC, const int *JC, const int *DESCC)
void pssyev_(const char *jobz, const char *uplo, const int *m, float *A, const int *ia, const int *ja, int *desca, float *w, float *z, const int *iz, const int *jz, int *descz, float *work, const int *lwork, int *info)
void pdpotrf_(const char *UPLO, const int *N, double *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
int numroc_(const int *n, const int *nb, const int *iproc, const int *isproc, const int *nprocs)
void Cblacs_pcoord(int ictxt, int pnum, int *prow, int *pcol)
void pstran_(const int *m, const int *n, const float *alpha, const float *A, const int *IA, const int *JA, const int *DESCA, const float *beta, float *C, const int *IC, const int *JC, const int *DESCC)
void psyev(const char *, const char *, const int *, number *, const int *, const int *, int *, number *, number *, const int *, const int *, int *, number *, const int *, int *)
Definition: ScalapackTemplates.h:1853
void pslacpy_(const char *uplo, const int *m, const int *n, const float *A, const int *ia, const int *ja, const int *desca, float *B, const int *ib, const int *jb, const int *descb)
void pzheev_(const char *jobz, const char *uplo, const int *m, std::complex< double > *A, const int *ia, const int *ja, int *desca, double *w, std::complex< double > *z, const int *iz, const int *jz, int *descz, std::complex< double > *work, const int *lwork, int *info)
void placpy(const char *, const int *, const int *, const number *, const int *, const int *, const int *, number *, const int *, const int *, const int *)
Definition: ScalapackTemplates.h:1977
int indxg2p_(const int *glob, const int *nb, const int *iproc, const int *isproc, const int *nprocs)
double pdlansy_(const char *norm, const char *uplo, const int *N, const double *A, const int *IA, const int *JA, const int *DESCA, double *work)
void Cblacs_gridinfo(int context, int *grid_height, int *grid_width, int *grid_row, int *grid_col)
void psyevx(const char *, const char *, const char *, const int *, number *, const int *, const int *, const int *, number *, number *, const int *, const int *, number *, const int *, const int *, number *, number *, number *, const int *, const int *, const int *, number *, int *, int *, int *, int *, int *, number *, int *)
Definition: ScalapackTemplates.h:2100
void psgetri_(const int *N, float *A, const int *IA, const int *JA, const int *DESCA, const int *ipiv, float *work, int *lwork, int *iwork, int *liwork, int *info)
void ptrtri(const char *, const char *, const int *, number *, const int *, const int *, const int *, int *)
Definition: ScalapackTemplates.h:1427
void Cblacs_pinfo(int *rank, int *nprocs)
void Cblacs_get(int icontxt, int what, int *val)
void pdgesv_(const int *n, const int *nrhs, double *A, const int *ia, const int *ja, const int *desca, int *ipiv, double *B, const int *ib, const int *jb, const int *descb, int *info)
void pdsyev_(const char *jobz, const char *uplo, const int *m, double *A, const int *ia, const int *ja, int *desca, double *w, double *z, const int *iz, const int *jz, int *descz, double *work, const int *lwork, int *info)
void psgels_(const char *trans, const int *m, const int *n, const int *nrhs, float *A, const int *ia, const int *ja, const int *desca, float *B, const int *ib, const int *jb, const int *descb, float *work, int *lwork, int *info)
void pzpotri_(const char *UPLO, const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void pspotrf_(const char *UPLO, const int *N, float *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void pdgemr2d_(const int *m, const int *n, const 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 pstrtri_(const char *UPLO, const char *DIAG, const int *N, float *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void pdsyevx_(const char *jobz, const char *range, const char *uplo, const int *n, double *A, const int *ia, const int *ja, const int *desca, const double *VL, const double *VU, const int *il, const int *iu, const double *abstol, const int *m, const int *nz, double *w, 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 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 pssyevr_(const char *jobz, const char *range, const char *uplo, const int *n, float *A, const int *IA, const int *JA, const int *DESCA, const float *VL, const float *VU, const int *IL, const int *IU, int *m, int *nz, float *w, float *Z, const int *IZ, const int *JZ, const int *DESCZ, float *work, int *lwork, int *iwork, int *liwork, int *info)
void Cgerv2d(int, int, int, number *, int, int, int)
Definition: ScalapackTemplates.h:1132
void pgetrf(const int *, const int *, number *, const int *, const int *, const int *, int *, int *)
Definition: ScalapackTemplates.h:1255
int indxl2g_(const int *indxloc, const int *nb, const int *iproc, const int *isrcproc, const int *nprocs)
double pdlamch_(const int *ictxt, const char *cmach)
void Cblacs_exit(int error_code)
void Csgesd2d(int context, int M, int N, float *A, int lda, int rdest, int cdest)
void Cblacs_gridexit(int context)
void pgemm(const char *, const char *, const int *, const int *, const int *, const number *, const number *, const int *, const int *, const int *, const number *, const int *, const int *, const int *, const number *, number *, const int *, const int *, const int *)
Definition: ScalapackTemplates.h:1658
void ppocon(const char *, const int *, const number *, const int *, const int *, const int *, const number *, number *, number *, const int *, int *, const int *, int *)
Definition: ScalapackTemplates.h:1481
float pslange_(const char *norm, const int *m, const int *n, const float *A, const int *ia, const int *ja, const int *desca, float *work)
number plange(const char *, const int *, const int *, const number *, const int *, const int *, const int *, number *)
Definition: ScalapackTemplates.h:1811
void pdpotri_(const char *UPLO, const int *N, double *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void plamch(const int *, const char *, number &)
Definition: ScalapackTemplates.h:2079
void pspotri_(const char *UPLO, const int *N, float *A, const int *IA, const int *JA, const int *DESCA, 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 pdtrtri_(const char *UPLO, const char *DIAG, const int *N, double *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
void pgeadd(const char *, const int *, const int *, const number *, const number *, const int *, const int *, const int *, const number *, number *, const int *, const int *, const int *)
Definition: ScalapackTemplates.h:2529
void Cblacs_barrier(int, const char *)
void pzheevr_(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, const double *VL, const double *VU, const int *IL, const int *IU, int *m, int *nz, double *w, std::complex< double > *Z, const int *IZ, const int *JZ, const int *DESCZ, std::complex< double > *work, int *lwork, int *iwork, int *liwork, int *info)
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, std::complex< double > *C, const int *IC, const int *JC, const int *DESCC)
void pztrtri_(const char *UPLO, const char *DIAG, const int *N, std::complex< double > *A, const int *IA, const int *JA, const int *DESCA, int *INFO)
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)
int Csys2blacs_handle(utils::mpi::MPIComm comm)
void ppotrf(const char *, const int *, number *, const int *, const int *, const int *, int *)
Definition: ScalapackTemplates.h:1205
void pssyevx_(const char *jobz, const char *range, const char *uplo, const int *n, float *A, const int *ia, const int *ja, const int *desca, const float *VL, const float *VU, const int *il, const int *iu, const float *abstol, const int *m, const int *nz, float *w, 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 psgetrf_(const int *m, const int *n, float *A, const int *IA, const int *JA, const int *DESCA, int *ipiv, int *INFO)
void psgemm_(const char *transa, const char *transb, const int *m, const int *n, const int *k, const float *alpha, const float *A, const int *IA, const int *JA, const int *DESCA, const float *B, const int *IB, const int *JB, const int *DESCB, const float *beta, float *C, const int *IC, const int *JC, const int *DESCC)
void pdgesvd_(const char *jobu, const char *jobvt, const int *m, const int *n, double *A, const int *ia, const int *ja, const int *desca, double *S, double *U, const int *iu, const int *ju, const int *descu, double *VT, const int *ivt, const int *jvt, const int *descvt, double *work, int *lwork, int *info)
float pslansy_(const char *norm, const char *uplo, const int *N, const float *A, const int *IA, const int *JA, const int *DESCA, float *work)
void Cdgesd2d(int context, int M, int N, double *A, int lda, int rdest, int cdest)
void psgesvd_(const char *jobu, const char *jobvt, const int *m, const int *n, float *A, const int *ia, const int *ja, const int *desca, float *S, float *U, const int *iu, const int *ju, const int *descu, float *VT, const int *ivt, const int *jvt, const int *descvt, float *work, int *lwork, int *info)
void pzheevx_(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, const double *VL, const double *VU, const int *il, const int *iu, const double *abstol, const int *m, const int *nz, double *w, double *orfac, std::complex< double > *Z, const int *iz, const int *jz, const int *descz, std::complex< double > *work, int *lwork, int *iwork, int *liwork, int *ifail, int *iclustr, double *gap, int *info)
int MPIComm
Definition: MPITypes.h:84
void throwException(bool condition, std::string msg)
Definition: Exceptions.cpp:56
dealii includes
Definition: AtomFieldDataSpherical.cpp:31