ReproBLAS
idxdBLAS.h
Go to the documentation of this file.
1 
32 #ifndef IDXDBLAS_H_
33 #define IDXDBLAS_H_
34 #include "idxd.h"
35 #include "reproBLAS.h"
36 
37 float idxdBLAS_samax(const int N, const float *X, const int incX);
38 double idxdBLAS_damax(const int N, const double *X, const int incX);
39 void idxdBLAS_camax_sub(const int N, const void *X, const int incX, void *amax);
40 void idxdBLAS_zamax_sub(const int N, const void *X, const int incX, void *amax);
41 
42 float idxdBLAS_samaxm(const int N, const float *X, const int incX, const float *Y, const int incY);
43 double idxdBLAS_damaxm(const int N, const double *X, const int incX, const double *Y, const int incY);
44 void idxdBLAS_camaxm_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *amaxm);
45 void idxdBLAS_zamaxm_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *amaxm);
46 
47 void idxdBLAS_didsum(const int fold, const int N, const double *X, const int incX, double_indexed *Y);
48 void idxdBLAS_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 idxdBLAS_didasum(const int fold, const int N, const double *X, const int incX, double_indexed *Y);
50 void idxdBLAS_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 idxdBLAS_didssq(const int fold, const int N, const double *X, const int incX, const double scaleY, double_indexed *Y);
52 double idxdBLAS_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 idxdBLAS_diddot(const int fold, const int N, const double *X, const int incX, const double *Y, const int incY, double_indexed *Z);
54 void idxdBLAS_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 idxdBLAS_zizsum(const int fold, const int N, const void *X, const int incX, double_indexed *Y);
57 void idxdBLAS_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 idxdBLAS_dizasum(const int fold, const int N, const void *X, const int incX, double_indexed *Y);
59 void idxdBLAS_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 idxdBLAS_dizssq(const int fold, const int N, const void *X, const int incX, const double scaleY, double_indexed *Y);
61 double idxdBLAS_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 idxdBLAS_zizdotu(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, double_indexed *Z);
63 void idxdBLAS_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 idxdBLAS_zizdotc(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, double_indexed *Z);
65 void idxdBLAS_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 idxdBLAS_sissum(const int fold, const int N, const float *X, const int incX, float_indexed *Y);
68 void idxdBLAS_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 idxdBLAS_sisasum(const int fold, const int N, const float *X, const int incX, float_indexed *Y);
70 void idxdBLAS_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 idxdBLAS_sisssq(const int fold, const int N, const float *X, const int incX, const float scaleY, float_indexed *Y);
72 float idxdBLAS_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 idxdBLAS_sisdot(const int fold, const int N, const float *X, const int incX, const float *Y, const int incY, float_indexed *Z);
74 void idxdBLAS_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 idxdBLAS_cicsum(const int fold, const int N, const void *X, const int incX, float_indexed *Y);
77 void idxdBLAS_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 idxdBLAS_sicasum(const int fold, const int N, const void *X, const int incX, float_indexed *Y);
79 void idxdBLAS_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 idxdBLAS_sicssq(const int fold, const int N, const void *X, const int incX, const float scaleY, float_indexed *Y);
81 float idxdBLAS_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 idxdBLAS_cicdotu(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, float_indexed *Z);
83 void idxdBLAS_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 idxdBLAS_cicdotc(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, float_indexed *Z);
85 void idxdBLAS_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 idxdBLAS_didgemv(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_indexed *Y, const int incY);
92 void idxdBLAS_didgemm(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_indexed *C, const int ldc);
98 
99 void idxdBLAS_sisgemv(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_indexed *Y, const int incY);
104 void idxdBLAS_sisgemm(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_indexed *C, const int ldc);
110 
111 void idxdBLAS_zizgemv(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_indexed *Y, const int incY);
116 void idxdBLAS_zizgemm(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_indexed *C, const int ldc);
122 
123 void idxdBLAS_cicgemv(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_indexed *Y, const int incY);
128 void idxdBLAS_cicgemm(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_indexed *C, const int ldc);
134 
135 #endif
float idxdBLAS_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 indexed single precision Y the scaled sum of squares of elements of ...
Definition: smsssq.ccog:59
void idxdBLAS_didsum(const int fold, const int N, const double *X, const int incX, double_indexed *Y)
Add to indexed double precision Y the sum of double precision vector X.
Definition: didsum.c:17
void idxdBLAS_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 indexed double precision Y the absolute sum of double precision vector X...
Definition: dmdasum.ccog:57
void idxdBLAS_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 indexed complex double precision Z the conjugated dot product of complex do...
Definition: zmzdotc.ccog:59
double idxdBLAS_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 idxdBLAS_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 indexed double precision Y the absolute sum of complex double precision vec...
Definition: dmzasum.ccog:57
float idxdBLAS_sisssq(const int fold, const int N, const float *X, const int incX, const float scaleY, float_indexed *Y)
Add to scaled indexed single precision Y the scaled sum of squares of elements of single precision ve...
Definition: sisssq.c:19
void idxdBLAS_cicgemv(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_indexed *Y, const int incY)
Add to indexed complex single precision vector Y the matrix-vector product of complex single precisio...
Definition: cicgemv.ccog:57
void idxdBLAS_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 indexed single precision Y the sum of single precision vector X...
Definition: smssum.ccog:58
void idxdBLAS_cicgemm(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_indexed *C, const int ldc)
Add to indexed complex single precision matrix C the matrix-matrix product of complex single precisio...
Definition: cicgemm.ccog:61
double double_complex_indexed
The indexed complex double datatype.
Definition: idxd.h:55
void idxdBLAS_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 indexed complex single precision Z the conjugated dot product of complex si...
Definition: cmcdotc.ccog:59
void idxdBLAS_didgemv(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_indexed *Y, const int incY)
Add to indexed double precision vector Y the matrix-vector product of double precision matrix A and d...
Definition: didgemv.ccog:57
double idxdBLAS_didssq(const int fold, const int N, const double *X, const int incX, const double scaleY, double_indexed *Y)
Add to scaled indexed double precision Y the scaled sum of squares of elements of double precision ve...
Definition: didssq.c:19
reproBLAS.h defines reproducible BLAS Methods.
void idxdBLAS_cicsum(const int fold, const int N, const void *X, const int incX, float_indexed *Y)
Add to indexed complex single precision Y the sum of complex single precision vector X...
Definition: cicsum.c:17
void idxdBLAS_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 indexed single precision Z the dot product of single precision vectors X an...
Definition: smsdot.ccog:59
float idxdBLAS_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
float idxdBLAS_sicssq(const int fold, const int N, const void *X, const int incX, const float scaleY, float_indexed *Y)
Add to scaled indexed single precision Y the scaled sum of squares of elements of complex single prec...
Definition: sicssq.c:19
void idxdBLAS_sisdot(const int fold, const int N, const float *X, const int incX, const float *Y, const int incY, float_indexed *Z)
Add to indexed single precision Z the dot product of single precision vectors X and Y...
Definition: sisdot.c:19
void idxdBLAS_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 indexed complex double precision Y the sum of complex double precision vect...
Definition: zmzsum.ccog:57
void idxdBLAS_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 idxdBLAS_sissum(const int fold, const int N, const float *X, const int incX, float_indexed *Y)
Add to indexed single precision Y the sum of single precision vector X.
Definition: sissum.c:17
void idxdBLAS_didasum(const int fold, const int N, const double *X, const int incX, double_indexed *Y)
Add to indexed double precision Y the absolute sum of double precision vector X.
Definition: didasum.c:16
void idxdBLAS_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 indexed double precision Z the dot product of double precision vectors X an...
Definition: dmddot.ccog:59
float idxdBLAS_samax(const int N, const float *X, const int incX)
Find maximum absolute value in vector of single precision.
Definition: samax.ccog:45
float float_indexed
The indexed float datatype.
Definition: idxd.h:64
void idxdBLAS_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 indexed single precision Y the absolute sum of complex single precision vec...
Definition: smcasum.ccog:57
void idxdBLAS_zizgemv(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_indexed *Y, const int incY)
Add to indexed complex double precision vector Y the matrix-vector product of complex double precisio...
Definition: zizgemv.ccog:57
void idxdBLAS_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 idxdBLAS_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
void idxdBLAS_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 indexed complex single precision Z the unconjugated dot product of complex ...
Definition: cmcdotu.ccog:59
float idxdBLAS_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 indexed single precision Y the scaled sum of squares of elements of ...
Definition: smcssq.ccog:59
void idxdBLAS_sicasum(const int fold, const int N, const void *X, const int incX, float_indexed *Y)
Add to indexed single precision Y the absolute sum of complex single precision vector X...
Definition: sicasum.c:17
double idxdBLAS_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 indexed double precision Y the scaled sum of squares of elements of ...
Definition: dmdssq.ccog:60
void idxdBLAS_sisgemv(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_indexed *Y, const int incY)
Add to indexed single precision vector Y the matrix-vector product of single precision matrix A and s...
Definition: sisgemv.ccog:57
void idxdBLAS_didgemm(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_indexed *C, const int ldc)
Add to indexed double precision matrix C the matrix-matrix product of double precision matrices A and...
Definition: didgemm.ccog:61
void idxdBLAS_zizgemm(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_indexed *C, const int ldc)
Add to indexed complex double precision matrix C the matrix-matrix product of complex double precisio...
Definition: zizgemm.ccog:61
void idxdBLAS_zizdotu(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, double_indexed *Z)
Add to indexed complex double precision Z the unconjugated dot product of complex double precision ve...
Definition: zizdotu.c:19
double idxdBLAS_damax(const int N, const double *X, const int incX)
Find maximum absolute value in vector of double precision.
Definition: damax.ccog:45
void idxdBLAS_sisgemm(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_indexed *C, const int ldc)
Add to indexed single precision matrix C the matrix-matrix product of single precision matrices A and...
Definition: sisgemm.ccog:61
void idxdBLAS_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 indexed complex double precision Z the unconjugated dot product of complex ...
Definition: zmzdotu.ccog:59
void idxdBLAS_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 idxdBLAS_zizsum(const int fold, const int N, const void *X, const int incX, double_indexed *Y)
Add to indexed complex double precision Y the sum of complex double precision vector X...
Definition: zizsum.c:17
void idxdBLAS_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 indexed complex single precision Y the sum of complex single precision vect...
Definition: cmcsum.ccog:58
void idxdBLAS_zizdotc(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, double_indexed *Z)
Add to indexed complex double precision Z the conjugated dot product of complex double precision vect...
Definition: zizdotc.c:19
void idxdBLAS_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 indexed single precision Y the absolute sum of double precision vector X...
Definition: smsasum.ccog:57
double idxdBLAS_dizssq(const int fold, const int N, const void *X, const int incX, const double scaleY, double_indexed *Y)
Add to scaled indexed double precision Y the scaled sum of squares of elements of complex double prec...
Definition: dizssq.c:19
void idxdBLAS_sisasum(const int fold, const int N, const float *X, const int incX, float_indexed *Y)
Add to indexed single precision Y the absolute sum of single precision vector X.
Definition: sisasum.c:16
void idxdBLAS_dizasum(const int fold, const int N, const void *X, const int incX, double_indexed *Y)
Add to indexed double precision Y the absolute sum of complex double precision vector X...
Definition: dizasum.c:17
void idxdBLAS_cicdotu(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, float_indexed *Z)
Add to indexed complex single precision Z the unconjugated dot product of complex single precision ve...
Definition: cicdotu.c:19
float float_complex_indexed
The indexed complex float datatype.
Definition: idxd.h:73
idxd.h defines the indexed types and the lower level functions associated with their use...
void idxdBLAS_diddot(const int fold, const int N, const double *X, const int incX, const double *Y, const int incY, double_indexed *Z)
Add to indexed double precision Z the dot product of double precision vectors X and Y...
Definition: diddot.c:19
double idxdBLAS_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 indexed double precision Y the scaled sum of squares of elements of ...
Definition: dmzssq.ccog:59
void idxdBLAS_cicdotc(const int fold, const int N, const void *X, const int incX, const void *Y, const int incY, float_indexed *Z)
Add to indexed complex single precision Z the conjugated dot product of complex single precision vect...
Definition: cicdotc.c:19
void idxdBLAS_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 indexed double precision Y the sum of double precision vector X...
Definition: dmdsum.ccog:57
double double_indexed
The indexed double datatype.
Definition: idxd.h:46