Phoebe developer's documentation  1.1.0
Phonon and Electron Boltzmann Equations
Blacs.h
Go to the documentation of this file.
1 #ifndef BLACS_H
2 #define BLACS_H
8 #include <complex>
9 
10 extern "C" {
11 
12 void blacs_get_(int *, int *, int *);
13 void blacs_pinfo_(int *, int *);
14 void blacs_gridinit_(int *, char *, int *, int *);
15 void blacs_gridinfo_(int *, int *, int *, int *, int *);
16 void descinit_(int *, int *, int *, int *, int *, int *, int *, int *, int *,
17  int *);
18 void blacs_gridexit_(const int *);
19 int numroc_(int *, int *, int *, int *, int *);
20 
21 //void pdelset_(double *, int *, int *, int *, double *);
22 //void pdelget_(char *, char *, double *, double *, const int *, const int *,
23 // const int *);
24 void infog2l_(const int *, const int *, const int *, const int *, const int *,
25  const int *, const int *, int *, int *, int *, int *);
26 
27 int indxg2p_(int *, int *, int *, int *, int *);
28 
29 int indxg2l_(const int *, const int *, const int *, const int *, const int *);
30 
31 int indxl2g_(const int *, const int *, const int *, const int *, const int *);
32 
33 void pdgemm_(const char *, const char *, int *, int *, const int *, double *,
34  double *, int *, int *, const int *, double *, int *, int *,
35  const int *, double *, double *, int *, int *, int *);
36 void pdsyev_(char *, char *, int *, double *, int *, int *, int *, double *,
37  double *, int *, int *, int *, double *, int *, int *);
38 //void pzelset_(std::complex<double> *, int *, int *, int *,
39 // std::complex<double> *);
40 //void pzelget_(char *, char *, std::complex<double> *, std::complex<double> *,
41 // int *, int *, int *);
42 void pzgemm_(const char *, const char *, int *, int *, const int *,
43  std::complex<double> *, std::complex<double> *, int *, int *,
44  const int *, std::complex<double> *, int *, int *, const int *,
45  std::complex<double> *, std::complex<double> *, int *, int *,
46  int *);
47 void pzheev_(char *, char *, int *, std::complex<double> *, int *, int *, int *,
48  double *, std::complex<double> *, int *, int *, int *,
49  std::complex<double> *, int *, std::complex<double> *, int *,
50  int *);
51 void pdsygvx_(const int *, const char*, const char*, const char*, const int*,
52  double*, int*, int*, int*, double*, int*, int*, int*, double*,
53  double*, int*, int*, double*, int*, int*,
54  double*, double*, double*, int*, int*, int*, double*,
55  int*, int*, int*, int*, int*, double*, int*);
56 // calculate some eigenvalues of a parallel matrix of doubles
57 void pdsyevr_(const char*, const char*, const char*, const int*, double*, int*, int*, int*,
58  double*, double*, int*, int*, int*, int*,
59  double*, double*, int*, int*, int*,
60  double*, int*, int*, int*, int*);
61 // calculate all eigenvalues and vectors by divide and conquer algorithm
62 void pdsyevd_(char *, char *, int *, double *, int *, int *, int *, double *,
63  double *, int *, int *, int *, double *, int *, int *, int *, int *);
64 // take the transpose of a real matrix
65 void pdtran_(int * m, int * n, double * alpha, double * a, int * ia, int * ja, int * desc_a, double * beta, double * c, int * ic, int * jc, int * desc_c);
66 
67 }
68 
69 #endif /* BLACS_H */