ReproBLAS
binnedBLAS.h
Go to the documentation of this file.
1 
32 #ifndef BINNEDBLAS_H_
33 #define BINNEDBLAS_H_
34 #include "binned.h"
35 #include "reproBLAS.h"
36 
37 float binnedBLAS_samax(const int N, const float *X, const int incX);
38 double binnedBLAS_damax(const int N, const double *X, const int incX);
39 void binnedBLAS_camax_sub(const int N, const void *X, const int incX, void *amax);
40 void binnedBLAS_zamax_sub(const int N, const void *X, const int incX, void *amax);
41 
42 float binnedBLAS_samaxm(const int N, const float *X, const int incX, const float *Y, const int incY);
43 double binnedBLAS_damaxm(const int N, const double *X, const int incX, const double *Y, const int incY);
44 void binnedBLAS_camaxm_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *amaxm);
45 void binnedBLAS_zamaxm_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *amaxm);
46 
47 void binnedBLAS_dbdsum(const int fold, const int N, const double *X, const int incX, double_binned *Y);
48 void binnedBLAS_dmdsum(const int fold, const int N, const double *X, const int incX, double *priY, const int incpriY, double *carY, const int inccarY);
49 void binnedBLAS_dbdasum(const int fold, const int N, const double *X, const int incX, double_binned *Y);
50 void binnedBLAS_dmdasum(const int fold, const int N, const double *X, const int incX, double *priY, const int incpriY, double *carY, const int inccarY);
51 double binnedBLAS_dbdssq(const int fold, const int N, const double *X, const int incX, const double scaleY, double_binned *Y);
52 double binnedBLAS_dmdssq(const int fold, const int N, const double *X, const int incX, const double scaleY, double *priY, const int incpriY, double *carY, const int inccarY);
53 void binnedBLAS_dbddot(const int fold, const int N, const double *X, const int incX, const double *Y, const int incY, double_binned *Z);
54 void binnedBLAS_dmddot(const int fold, const int N, const double *X, const int incX, const double *Y, const int incY, double *manZ, const int incmanZ, double *carZ, const int inccarZ);
55 
56 void binnedBLAS_zbzsum(const int fold, const int N, const void *X, const int incX, double_binned *Y);
57 void binnedBLAS_zmzsum(const int fold, const int N, const void *X, const int incX, double *priY, const int incpriY, double *carY, const int inccarY);
58 void binnedBLAS_dbzasum(const int fold, const int N, const void *X, const int incX, double_binned *Y);
59 void binnedBLAS_dmzasum(const int fold, const int N, const void *X, const int incX, double *priY, const int incpriY, double *carY, const int inccarY);
60 double binnedBLAS_dbzssq(const int fold, const int N, const void *X, const int incX, const double scaleY, double_binned *Y);
61 double binnedBLAS_dmzssq(const int fold, const int N, const void *X, const int incX, const double scaleY, double *priY, const int incpriY, double *carY, const int inccarY);
62 void binnedBLAS_zbzdotu(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, double_binned *Z);
63 void binnedBLAS_zmzdotu(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, double *manZ, const int incmanZ, double *carZ, const int inccarZ);
64 void binnedBLAS_zbzdotc(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, double_binned *Z);
65 void binnedBLAS_zmzdotc(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, double *manZ, const int incmanZ, double *carZ, const int inccarZ);
66 
67 void binnedBLAS_sbssum(const int fold, const int N, const float *X, const int incX, float_binned *Y);
68 void binnedBLAS_smssum(const int fold, const int N, const float *X, const int incX, float *priY, const int incpriY, float *carY, const int inccarY);
69 void binnedBLAS_sbsasum(const int fold, const int N, const float *X, const int incX, float_binned *Y);
70 void binnedBLAS_smsasum(const int fold, const int N, const float *X, const int incX, float *priY, const int incpriY, float *carY, const int inccarY);
71 float binnedBLAS_sbsssq(const int fold, const int N, const float *X, const int incX, const float scaleY, float_binned *Y);
72 float binnedBLAS_smsssq(const int fold, const int N, const float *X, const int incX, const float scaleY, float *priY, const int incpriY, float *carY, const int inccarY);
73 void binnedBLAS_sbsdot(const int fold, const int N, const float *X, const int incX, const float *Y, const int incY, float_binned *Z);
74 void binnedBLAS_smsdot(const int fold, const int N, const float *X, const int incX, const float *Y, const int incY, float *manZ, const int incmanZ, float *carZ, const int inccarZ);
75 
76 void binnedBLAS_cbcsum(const int fold, const int N, const void *X, const int incX, float_binned *Y);
77 void binnedBLAS_cmcsum(const int fold, const int N, const void *X, const int incX, float *priY, const int incpriY, float *carY, const int inccarY);
78 void binnedBLAS_sbcasum(const int fold, const int N, const void *X, const int incX, float_binned *Y);
79 void binnedBLAS_smcasum(const int fold, const int N, const void *X, const int incX, float *priY, const int incpriY, float *carY, const int inccarY);
80 float binnedBLAS_sbcssq(const int fold, const int N, const void *X, const int incX, const float scaleY, float_binned *Y);
81 float binnedBLAS_smcssq(const int fold, const int N, const void *X, const int incX, const float scaleY, float *priY, const int incpriY, float *carY, const int inccarY);
82 void binnedBLAS_cbcdotu(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, float_binned *Z);
83 void binnedBLAS_cmcdotu(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, float *manZ, const int incmanZ, float *carZ, const int inccarZ);
84 void binnedBLAS_cbcdotc(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, float_binned *Z);
85 void binnedBLAS_cmcdotc(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, float *manZ, const int incmanZ, float *carZ, const int inccarZ);
86 
87 void binnedBLAS_dbdgemv(const int fold, const char Order, const char TransA,
88  const int M, const int N,
89  const double alpha, const double *A, const int lda,
90  const double *X, const int incX,
91  double_binned *Y, const int incY);
92 void binnedBLAS_dbdgemm(const int fold, const char Order,
93  const char TransA, const char TransB,
94  const int M, const int N, const int K,
95  const double alpha, const double *A, const int lda,
96  const double *B, const int ldb,
97  double_binned *C, const int ldc);
98 
99 void binnedBLAS_sbsgemv(const int fold, const char Order, const char TransA,
100  const int M, const int N,
101  const float alpha, const float *A, const int lda,
102  const float *X, const int incX,
103  float_binned *Y, const int incY);
104 void binnedBLAS_sbsgemm(const int fold, const char Order,
105  const char TransA, const char TransB,
106  const int M, const int N, const int K,
107  const float alpha, const float *A, const int lda,
108  const float *B, const int ldb,
109  float_binned *C, const int ldc);
110 
111 void binnedBLAS_zbzgemv(const int fold, const char Order, const char TransA,
112  const int M, const int N,
113  const void *alpha, const void *A, const int lda,
114  const void *X, const int incX,
115  double_complex_binned *Y, const int incY);
116 void binnedBLAS_zbzgemm(const int fold, const char Order,
117  const char TransA, const char TransB,
118  const int M, const int N, const int K,
119  const void *alpha, const void *A, const int lda,
120  const void *B, const int ldb,
121  double_complex_binned *C, const int ldc);
122 
123 void binnedBLAS_cbcgemv(const int fold, const char Order, const char TransA,
124  const int M, const int N,
125  const void *alpha, const void *A, const int lda,
126  const void *X, const int incX,
127  float_complex_binned *Y, const int incY);
128 void binnedBLAS_cbcgemm(const int fold, const char Order,
129  const char TransA, const char TransB,
130  const int M, const int N, const int K,
131  const void *alpha, const void *A, const int lda,
132  const void *B, const int ldb,
133  float_complex_binned *C, const int ldc);
134 
135 #endif
void binnedBLAS_sbsgemm(const int fold, const char Order, const char TransA, const char TransB, const int M, const int N, const int K, const float alpha, const float *A, const int lda, const float *B, const int ldb, float_binned *C, const int ldc)
Add to binned single precision matrix C the matrix-matrix product of single precision matrices A and ...
Definition: sbsgemm.ccog:61
void binnedBLAS_dbdgemv(const int fold, const char Order, const char TransA, const int M, const int N, const double alpha, const double *A, const int lda, const double *X, const int incX, double_binned *Y, const int incY)
Add to binned double precision vector Y the matrix-vector product of double precision matrix A and do...
Definition: dbdgemv.ccog:57
void binnedBLAS_zbzdotc(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, double_binned *Z)
Add to binned complex double precision Z the conjugated dot product of complex double precision vecto...
Definition: zbzdotc.c:19
void binnedBLAS_dmzasum(const int fold, const int N, const void *X, const int incX, double *priY, const int incpriY, double *carY, const int inccarY)
Add to manually specified binned double precision Y the absolute sum of complex double precision vect...
Definition: dmzasum.ccog:57
double binnedBLAS_dbzssq(const int fold, const int N, const void *X, const int incX, const double scaleY, double_binned *Y)
Add to scaled binned double precision Y the scaled sum of squares of elements of complex double preci...
Definition: dbzssq.c:19
void binnedBLAS_smsasum(const int fold, const int N, const float *X, const int incX, float *priY, const int incpriY, float *carY, const int inccarY)
Add to manually specified binned single precision Y the absolute sum of double precision vector X...
Definition: smsasum.ccog:57
void binnedBLAS_cmcdotu(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, float *manZ, const int incmanZ, float *carZ, const int inccarZ)
Add to manually specified binned complex single precision Z the unconjugated dot product of complex s...
Definition: cmcdotu.ccog:59
float float_complex_binned
The binned complex float datatype.
Definition: binned.h:73
void binnedBLAS_zbzsum(const int fold, const int N, const void *X, const int incX, double_binned *Y)
Add to binned complex double precision Y the sum of complex double precision vector X...
Definition: zbzsum.c:17
void binnedBLAS_dbddot(const int fold, const int N, const double *X, const int incX, const double *Y, const int incY, double_binned *Z)
Add to binned double precision Z the dot product of double precision vectors X and Y...
Definition: dbddot.c:19
void binnedBLAS_cbcgemm(const int fold, const char Order, const char TransA, const char TransB, const int M, const int N, const int K, const void *alpha, const void *A, const int lda, const void *B, const int ldb, float_complex_binned *C, const int ldc)
Add to binned complex single precision matrix C the matrix-matrix product of complex single precision...
Definition: cbcgemm.ccog:61
float binnedBLAS_sbsssq(const int fold, const int N, const float *X, const int incX, const float scaleY, float_binned *Y)
Add to scaled binned single precision Y the scaled sum of squares of elements of single precision vec...
Definition: sbsssq.c:19
void binnedBLAS_zbzdotu(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, double_binned *Z)
Add to binned complex double precision Z the unconjugated dot product of complex double precision vec...
Definition: zbzdotu.c:19
double binnedBLAS_dmdssq(const int fold, const int N, const double *X, const int incX, const double scaleY, double *priY, const int incpriY, double *carY, const int inccarY)
Add to scaled manually specified binned double precision Y the scaled sum of squares of elements of d...
Definition: dmdssq.ccog:60
void binnedBLAS_dbdasum(const int fold, const int N, const double *X, const int incX, double_binned *Y)
Add to binned double precision Y the absolute sum of double precision vector X.
Definition: dbdasum.c:16
reproBLAS.h defines reproducible BLAS Methods.
float binnedBLAS_samaxm(const int N, const float *X, const int incX, const float *Y, const int incY)
Find maximum absolute value pairwise product between vectors of single precision. ...
Definition: samaxm.ccog:47
double binnedBLAS_dbdssq(const int fold, const int N, const double *X, const int incX, const double scaleY, double_binned *Y)
Add to scaled binned double precision Y the scaled sum of squares of elements of double precision vec...
Definition: dbdssq.c:19
float binnedBLAS_smcssq(const int fold, const int N, const void *X, const int incX, const float scaleY, float *priY, const int incpriY, float *carY, const int inccarY)
Add to scaled manually specified binned single precision Y the scaled sum of squares of elements of c...
Definition: smcssq.ccog:59
void binnedBLAS_cbcdotu(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, float_binned *Z)
Add to binned complex single precision Z the unconjugated dot product of complex single precision vec...
Definition: cbcdotu.c:19
void binnedBLAS_camax_sub(const int N, const void *X, const int incX, void *amax)
Find maximum magnitude in vector of complex single precision.
Definition: camax_sub.ccog:46
double binnedBLAS_damax(const int N, const double *X, const int incX)
Find maximum absolute value in vector of double precision.
Definition: damax.ccog:45
void binnedBLAS_dmdasum(const int fold, const int N, const double *X, const int incX, double *priY, const int incpriY, double *carY, const int inccarY)
Add to manually specified binned double precision Y the absolute sum of double precision vector X...
Definition: dmdasum.ccog:57
void binnedBLAS_dmdsum(const int fold, const int N, const double *X, const int incX, double *priY, const int incpriY, double *carY, const int inccarY)
Add to manually specified binned double precision Y the sum of double precision vector X...
Definition: dmdsum.ccog:57
void binnedBLAS_zmzdotc(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, double *manZ, const int incmanZ, double *carZ, const int inccarZ)
Add to manually specified binned complex double precision Z the conjugated dot product of complex dou...
Definition: zmzdotc.ccog:59
void binnedBLAS_sbcasum(const int fold, const int N, const void *X, const int incX, float_binned *Y)
Add to binned single precision Y the absolute sum of complex single precision vector X...
Definition: sbcasum.c:17
void binnedBLAS_camaxm_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *amaxm)
Find maximum magnitude pairwise product between vectors of complex single precision.
Definition: camaxm_sub.ccog:47
void binnedBLAS_cbcsum(const int fold, const int N, const void *X, const int incX, float_binned *Y)
Add to binned complex single precision Y the sum of complex single precision vector X...
Definition: cbcsum.c:17
void binnedBLAS_sbssum(const int fold, const int N, const float *X, const int incX, float_binned *Y)
Add to binned single precision Y the sum of single precision vector X.
Definition: sbssum.c:17
float binnedBLAS_samax(const int N, const float *X, const int incX)
Find maximum absolute value in vector of single precision.
Definition: samax.ccog:45
void binnedBLAS_zamaxm_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *amaxm)
Find maximum magnitude pairwise product between vectors of complex double precision.
Definition: zamaxm_sub.ccog:47
void binnedBLAS_zmzdotu(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, double *manZ, const int incmanZ, double *carZ, const int inccarZ)
Add to manually specified binned complex double precision Z the unconjugated dot product of complex d...
Definition: zmzdotu.ccog:59
double double_binned
The binned double datatype.
Definition: binned.h:46
void binnedBLAS_cbcgemv(const int fold, const char Order, const char TransA, const int M, const int N, const void *alpha, const void *A, const int lda, const void *X, const int incX, float_complex_binned *Y, const int incY)
Add to binned complex single precision vector Y the matrix-vector product of complex single precision...
Definition: cbcgemv.ccog:57
float binnedBLAS_sbcssq(const int fold, const int N, const void *X, const int incX, const float scaleY, float_binned *Y)
Add to scaled binned single precision Y the scaled sum of squares of elements of complex single preci...
Definition: sbcssq.c:19
void binnedBLAS_sbsdot(const int fold, const int N, const float *X, const int incX, const float *Y, const int incY, float_binned *Z)
Add to binned single precision Z the dot product of single precision vectors X and Y...
Definition: sbsdot.c:19
void binnedBLAS_smcasum(const int fold, const int N, const void *X, const int incX, float *priY, const int incpriY, float *carY, const int inccarY)
Add to manually specified binned single precision Y the absolute sum of complex single precision vect...
Definition: smcasum.ccog:57
void binnedBLAS_sbsgemv(const int fold, const char Order, const char TransA, const int M, const int N, const float alpha, const float *A, const int lda, const float *X, const int incX, float_binned *Y, const int incY)
Add to binned single precision vector Y the matrix-vector product of single precision matrix A and si...
Definition: sbsgemv.ccog:57
void binnedBLAS_smssum(const int fold, const int N, const float *X, const int incX, float *priY, const int incpriY, float *carY, const int inccarY)
Add to manually specified binned single precision Y the sum of single precision vector X...
Definition: smssum.ccog:58
float binnedBLAS_smsssq(const int fold, const int N, const float *X, const int incX, const float scaleY, float *priY, const int incpriY, float *carY, const int inccarY)
Add to scaled manually specified binned single precision Y the scaled sum of squares of elements of s...
Definition: smsssq.ccog:59
double binnedBLAS_dmzssq(const int fold, const int N, const void *X, const int incX, const double scaleY, double *priY, const int incpriY, double *carY, const int inccarY)
Add to scaled manually specified binned double precision Y the scaled sum of squares of elements of c...
Definition: dmzssq.ccog:59
void binnedBLAS_dbdsum(const int fold, const int N, const double *X, const int incX, double_binned *Y)
Add to binned double precision Y the sum of double precision vector X.
Definition: dbdsum.c:17
void binnedBLAS_sbsasum(const int fold, const int N, const float *X, const int incX, float_binned *Y)
Add to binned single precision Y the absolute sum of single precision vector X.
Definition: sbsasum.c:16
void binnedBLAS_cmcdotc(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, float *manZ, const int incmanZ, float *carZ, const int inccarZ)
Add to manually specified binned complex single precision Z the conjugated dot product of complex sin...
Definition: cmcdotc.ccog:59
void binnedBLAS_dmddot(const int fold, const int N, const double *X, const int incX, const double *Y, const int incY, double *manZ, const int incmanZ, double *carZ, const int inccarZ)
Add to manually specified binned double precision Z the dot product of double precision vectors X and...
Definition: dmddot.ccog:59
void binnedBLAS_zbzgemv(const int fold, const char Order, const char TransA, const int M, const int N, const void *alpha, const void *A, const int lda, const void *X, const int incX, double_complex_binned *Y, const int incY)
Add to binned complex double precision vector Y the matrix-vector product of complex double precision...
Definition: zbzgemv.ccog:57
void binnedBLAS_cbcdotc(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, float_binned *Z)
Add to binned complex single precision Z the conjugated dot product of complex single precision vecto...
Definition: cbcdotc.c:19
void binnedBLAS_zmzsum(const int fold, const int N, const void *X, const int incX, double *priY, const int incpriY, double *carY, const int inccarY)
Add to manually specified binned complex double precision Y the sum of complex double precision vecto...
Definition: zmzsum.ccog:57
void binnedBLAS_cmcsum(const int fold, const int N, const void *X, const int incX, float *priY, const int incpriY, float *carY, const int inccarY)
Add to manually specified binned complex single precision Y the sum of complex single precision vecto...
Definition: cmcsum.ccog:58
binned.h defines the binned types and the lower level functions associated with their use...
double double_complex_binned
The binned complex double datatype.
Definition: binned.h:55
void binnedBLAS_dbdgemm(const int fold, const char Order, const char TransA, const char TransB, const int M, const int N, const int K, const double alpha, const double *A, const int lda, const double *B, const int ldb, double_binned *C, const int ldc)
Add to binned double precision matrix C the matrix-matrix product of double precision matrices A and ...
Definition: dbdgemm.ccog:61
double binnedBLAS_damaxm(const int N, const double *X, const int incX, const double *Y, const int incY)
Find maximum absolute value pairwise product between vectors of double precision. ...
Definition: damaxm.ccog:47
void binnedBLAS_smsdot(const int fold, const int N, const float *X, const int incX, const float *Y, const int incY, float *manZ, const int incmanZ, float *carZ, const int inccarZ)
Add to manually specified binned single precision Z the dot product of single precision vectors X and...
Definition: smsdot.ccog:59
float float_binned
The binned float datatype.
Definition: binned.h:64
void binnedBLAS_dbzasum(const int fold, const int N, const void *X, const int incX, double_binned *Y)
Add to binned double precision Y the absolute sum of complex double precision vector X...
Definition: dbzasum.c:17
void binnedBLAS_zamax_sub(const int N, const void *X, const int incX, void *amax)
Find maximum magnitude in vector of complex double precision.
Definition: zamax_sub.ccog:45
void binnedBLAS_zbzgemm(const int fold, const char Order, const char TransA, const char TransB, const int M, const int N, const int K, const void *alpha, const void *A, const int lda, const void *B, const int ldb, double_complex_binned *C, const int ldc)
Add to binned complex double precision matrix C the matrix-matrix product of complex double precision...
Definition: zbzgemm.ccog:61