-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathExtern.h
47 lines (37 loc) · 2 KB
/
Extern.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/** ***************************************************** **/
/** ** Phonon Vibration Analysis ** **/
/** **/
/** ** Version 2 ** **/
/** **/
/** By: Pedro Brandimarte ([email protected]) and **/
/** Alexandre Reily Rocha ([email protected]) **/
/** **/
/** ***************************************************** **/
/** Interface for some external functions from 'LAPACK' **/
/** and 'BLAS' packages. **/
/** ***************************************************** **/
/* For compiling with old version of Intel MKL. */
#ifdef OLD
#define dsyevd dsyevd_
#define dgetrf dgetrf_
#define dgetri dgetri_
#define dgemm dgemm_
#endif
/* Lapack rotine: computes all eigenvalues and */
/* (optionally) all eigenvectors of a real symmetric */
/* matrix using "divide and conquer" algorithm. */
void dsyevd (char *jobz, char *uplo, int *n, double *a, int *lda, double *w,
double *work, int *lwork, int *iwork, int *liwork, int *info);
/* Lapack rotine: forms a triangular matrix factorization (trf) */
/* from a general matrix (ge) of double precision real (d). */
void dgetrf (int *m, int *n, double *a, int *lda, int *ipiv, int *info);
/* Lapack rotine: computes the inverse matrix using the factorization */
/* (tri) from a general matrix (ge) of double precision real (d). */
void dgetri (int *n, double *a, int *lda, int *ipiv,
double *work, int *lwork, int *info);
/* Blas rotine: computes a scalar-matrix-matrix product */
/* and adds the result to a scalar-matrix product. */
void dgemm (char *transa, char *transb, int *m, int *n, int *k,
double *alpha, double *a, int *lda, double *b,
int *ldb, double *beta, double *c, int *ldc);
/* ************************ Drafts ************************* */