ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Classes | Functions
scalapack_connector.h File Reference
#include <complex>
Include dependency graph for scalapack_connector.h:

Go to the source code of this file.

Classes

struct  block2d_data_type< T >
 
class  ScalapackConnector
 

Functions

int numroc_ (const int *n, const int *nb, const int *iproc, const int *srcproc, const int *nprocs)
 
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 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 pdpotrf_ (char *uplo, int *n, double *a, int *ia, int *ja, int *desca, int *info)
 
void pzpotrf_ (char *uplo, int *n, std::complex< double > *a, int *ia, int *ja, 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 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 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 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 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 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 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 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 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)
 
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)
 
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 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 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 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 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 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 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 Cpigemr2d (int m, int n, int *ptrmyblock, int ia, int ja, int *ma, int *ptrmynewblock, int ib, int jb, int *mb, int globcontext)
 
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 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 Cpsgemr2d (int m, int n, float *ptrmyblock, int ia, int ja, int *ma, float *ptrmynewblock, int ib, int jb, int *mb, int globcontext)
 
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)
 
template<typename T >
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)
 

Function Documentation

◆ Cpcgemr2d()

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 
)
Here is the caller graph for this function:

◆ Cpdgemr2d()

void Cpdgemr2d ( int  m,
int  n,
double *  ptrmyblock,
int  ia,
int  ja,
int *  ma,
double *  ptrmynewblock,
int  ib,
int  jb,
int *  mb,
int  globcontext 
)
Here is the caller graph for this function:

◆ Cpigemr2d()

void Cpigemr2d ( int  m,
int  n,
int *  ptrmyblock,
int  ia,
int  ja,
int *  ma,
int *  ptrmynewblock,
int  ib,
int  jb,
int *  mb,
int  globcontext 
)
Here is the caller graph for this function:

◆ Cpsgemr2d()

void Cpsgemr2d ( int  m,
int  n,
float *  ptrmyblock,
int  ia,
int  ja,
int *  ma,
float *  ptrmynewblock,
int  ib,
int  jb,
int *  mb,
int  globcontext 
)
Here is the caller graph for this function:

◆ Cpxgemr2d()

template<typename T >
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 
)

Copies a 2D block of data from matrix A to matrix B using the Scalapack library. This function supports different data types: double, std::complex<double>, float, std::complex<float>, and int.

Template Parameters
TThe data type of the matrices A and B.
Parameters
MThe number of rows of matrix A.
NThe number of columns of matrix A.
APointer to the source matrix A.
IAThe starting row index of the block in matrix A.
JAThe starting column index of the block in matrix A.
DESCADescriptor array for matrix A.
BPointer to the destination matrix B.
IBThe starting row index of the block in matrix B.
JBThe starting column index of the block in matrix B.
DESCBDescriptor array for matrix B.
ICTXTThe context identifier.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Cpzgemr2d()

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 
)
Here is the caller graph for this function:

◆ descinit_()

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 
)
Here is the caller graph for this function:

◆ numroc_()

int numroc_ ( const int *  n,
const int *  nb,
const int *  iproc,
const int *  srcproc,
const int *  nprocs 
)
Here is the caller graph for this function:

◆ pchegvx_()

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 
)
Here is the caller graph for this function:

◆ pddot_()

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 
)
Here is the caller graph for this function:

◆ pdgemm_()

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 
)
Here is the caller graph for this function:

◆ pdgemr2d_()

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 
)

◆ pdgemv_()

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 
)
Here is the caller graph for this function:

◆ pdpotrf_()

void pdpotrf_ ( char *  uplo,
int *  n,
double *  a,
int *  ia,
int *  ja,
int *  desca,
int *  info 
)
Here is the caller graph for this function:

◆ pdsygvx_()

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 
)
Here is the caller graph for this function:

◆ pdsymm_()

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 
)
Here is the caller graph for this function:

◆ pdtran_()

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 
)
Here is the caller graph for this function:

◆ pdtrmm_()

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 
)
Here is the caller graph for this function:

◆ pssygvx_()

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 
)
Here is the caller graph for this function:

◆ pzdotc_()

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 
)
Here is the caller graph for this function:

◆ pzgeadd_()

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 
)
Here is the caller graph for this function:

◆ pzgemm_()

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 
)
Here is the caller graph for this function:

◆ pzgemr2d_()

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 
)

◆ pzgemv_()

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 
)
Here is the caller graph for this function:

◆ pzgesv_()

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 
)
Here is the caller graph for this function:

◆ pzgetrf_()

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 
)
Here is the caller graph for this function:

◆ pzgetri_()

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 
)
Here is the caller graph for this function:

◆ pzhegvx_()

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 
)
Here is the caller graph for this function:

◆ pzhemm_()

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 
)
Here is the caller graph for this function:

◆ pzpotrf_()

void pzpotrf_ ( char *  uplo,
int *  n,
std::complex< double > *  a,
int *  ia,
int *  ja,
int *  desca,
int *  info 
)
Here is the caller graph for this function:

◆ pztranc_()

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 
)
Here is the caller graph for this function:

◆ pztranu_()

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 
)
Here is the caller graph for this function:

◆ pztrmm_()

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 
)
Here is the caller graph for this function: