fml  0.1-0
Fused Matrix Library
pblas_prototypes.h
1 // This file is part of fml which is released under the Boost Software
2 // License, Version 1.0. See accompanying file LICENSE or copy at
3 // https://www.boost.org/LICENSE_1_0.txt
4 
5 #ifndef FML_MPI_LINALG_INTERNALS_PBLAS_PROTOTYPES_H
6 #define FML_MPI_LINALG_INTERNALS_PBLAS_PROTOTYPES_H
7 #pragma once
8 
9 
10 #ifndef restrict
11 #define restrict __restrict__
12 #endif
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 
19 extern void psgemm_(const char *transa, const char *transb, const int *m,
20  const int *n, const int *k, const float *restrict alpha,
21  const float *restrict a, const int *ia, const int *ja, const int *desca,
22  const float *restrict b, const int *ib, const int *jb, const int *descb,
23  const float *restrict beta, float *restrict c, const int *ic, const int *jc,
24  const int *descc);
25 
26 extern void pdgemm_(const char *transa, const char *transb, const int *m,
27  const int *n, const int *k, const double *restrict alpha,
28  const double *restrict a, const int *ia, const int *ja, const int *desca,
29  const double *restrict b, const int *ib, const int *jb, const int *descb,
30  const double *restrict beta, double *restrict c, const int *ic, const int *jc,
31  const int *descc);
32 
33 
34 
35 extern void pssyrk_(const char *uplo, const char *trans, const int *n,
36  const int *k, const float *restrict alpha, const float *restrict a,
37  const int *ia, const int *ja, const int *desca, const float *restrict beta,
38  float *restrict c, const int *ic, const int *jc, const int *descc);
39 
40 extern void pdsyrk_(const char *uplo, const char *trans, const int *n,
41  const int *k, const double *restrict alpha, const double *restrict a,
42  const int *ia, const int *ja, const int *desca, const double *restrict beta,
43  double *restrict c, const int *ic, const int *jc, const int *descc);
44 
45 
46 
47 extern void pstran_(const int *restrict m, const int *restrict n,
48  const float *restrict alpha, const float *restrict a, const int *ia,
49  const int *ja, const int *restrict desca, const float *restrict beta,
50  float *restrict c, const int *ic, const int *jc, const int *restrict descc);
51 
52 extern void pdtran_(const int *restrict m, const int *restrict n,
53  const double *restrict alpha, const double *restrict a, const int *ia,
54  const int *ja, const int *restrict desca, const double *restrict beta,
55  double *restrict c, const int *ic, const int *jc, const int *restrict descc);
56 
57 
58 
59 extern void psgeadd_(const char *restrict trans, const int *restrict m,
60  const int *restrict n, const float *restrict alpha, const float *restrict a,
61  const int *ia, const int *ja, const int *restrict desca,
62  const float *restrict beta, float *restrict c, const int *ic, const int *jc,
63  const int *restrict descc);
64 
65 extern void pdgeadd_(const char *restrict trans, const int *restrict m,
66  const int *restrict n, const double *restrict alpha, const double *restrict a,
67  const int *ia, const int *ja, const int *restrict desca,
68  const double *restrict beta, double *restrict c, const int *ic, const int *jc,
69  const int *restrict descc);
70 
71 
72 #ifdef __cplusplus
73 }
74 #endif
75 
76 
77 #endif