MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
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
16typedef f77_integer_t blasint;
17
18#ifdef __cplusplus
19extern "C" {
20#endif // __cplusplus
21
38extern 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
45extern 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
49extern void F77_DAXPY(const blasint* n, const double* da, const double* dx,
50 const blasint* incx, double* dy, const blasint* incy);
51
52extern double F77_DDOT(const blasint* n, const double* dx, const blasint* incx,
53 const double* dy, const blasint* incy);
54
55extern void F77_DCOPY(const blasint *n, const double *dx, const blasint *incx, double *dy, const blasint *incy);
56extern double F77_DNRM2(const blasint *n, const double *dx, const blasint *incx);
57extern void F77_DSCAL(const blasint *n, const double *da, double *dx, const blasint *incx);
58
59extern 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
69namespace 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
Contains all MPQC code up to version 3.
Definition mpqcin.h:14

Generated at Wed Sep 25 2024 02:45:30 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.12.0.