MPQC  3.0.0-alpha
blas.h
1 #ifndef MPQC_BLAS_H
2 #define MPQC_BLAS_H
3 
4 #include <math/scmat/f77sym.h>
5 #include <mpqc_config.h>
6 #include <stdint.h>
7 
8 #if defined(F77_INTEGER_WIDTH) && F77_INTEGER_WIDTH == 8
9  typedef int64_t f77_integer_t;
10 #elif defined(F77_INTEGER_WIDTH) && F77_INTEGER_WIDTH == 4
11  typedef int32_t f77_integer_t;
12 #else
13 # error "unknown F77_INTEGER_WIDTH"
14 #endif
15 
16 typedef f77_integer_t blasint;
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif // __cplusplus
21 
38 extern void F77_DGEMM(const char* transa, const char* transb, const blasint* nrows_opA,
39  const blasint* ncols_opB, const blasint* nrows_opB,
40  const double* alpha, const double* A, const blasint* lda,
41  const double* B, const blasint* ldb,
42  const double* beta,
43  double* C, const blasint* ldc);
44 
45 extern void F77_DGEMV(const char* trans, const blasint* m, const blasint* n, const double* alpha,
46  const double* A, const blasint* lda, const double* X, const blasint* incX,
47  const double* beta, double* Y, const blasint* incY);
48 
49 extern void F77_DAXPY(const blasint* n, const double* da, const double* dx,
50  const blasint* incx, double* dy, const blasint* incy);
51 
52 extern double F77_DDOT(const blasint* n, const double* dx, const blasint* incx,
53  const double* dy, const blasint* incy);
54 
55 extern void F77_DCOPY(const blasint *n, const double *dx, const blasint *incx, double *dy, const blasint *incy);
56 extern double F77_DNRM2(const blasint *n, const double *dx, const blasint *incx);
57 extern void F77_DSCAL(const blasint *n, const double *da, double *dx, const blasint *incx);
58 
59 extern void F77_DSPMV(const char* uplo, const blasint* n, const double* alpha,
60  const double* A, const double* X, const blasint* incx,
61  const double* beta, double* Y,
62  const blasint* incy);
63 
64 #ifdef __cplusplus
65 }
66 #endif // __cplusplus
67 
68 #ifdef __cplusplus
69 namespace sc {
70 
71  //
72  // taken from psi3/src/lib/libqt/blas_intfc.c
73  //
74 
145  void C_DGEMM(char transa, char transb, int m, int n, int k, double alpha,
146  const double *A, int nca, const double *B, int ncb, double beta,
147  double *C, int ncc);
148 
149 }
150 #endif // __cplusplus
151 
152 #endif // MPQC_BLAS_H
sc
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14

Generated at Sun Jan 26 2020 23:24:00 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.