summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2016-10-25 14:28:52 +0200
committerCedric Nugteren <web@cedricnugteren.nl>2016-10-25 14:28:52 +0200
commitf96fd372bc3087938572ebc55bd1d8e1b7e6f18a (patch)
tree5a3a20fa4fdefd942bfd4dbd6713f687cfe67d5b /include
parent3b65eace0a4a48568353da3a86ac46d9ff1f1ffc (diff)
Added initial version of a Netlib CBLAS implementation. TODO: Set correct buffer sizes
Diffstat (limited to 'include')
-rw-r--r--include/clblast_blas.h158
-rw-r--r--include/clblast_c.h5
2 files changed, 3 insertions, 160 deletions
diff --git a/include/clblast_blas.h b/include/clblast_blas.h
index a5d0cc9c..b4db4192 100644
--- a/include/clblast_blas.h
+++ b/include/clblast_blas.h
@@ -18,8 +18,8 @@
// Exports library functions under Windows when building a DLL. See also:
// https://msdn.microsoft.com/en-us/library/a90k134d.aspx
-#ifdef _WIN32
- #ifdef COMPILING_DLL
+#if defined(_WIN32) && defined(CLBLAST_DLL)
+ #if defined(COMPILING_DLL)
#define PUBLIC_API __declspec(dllexport)
#else
#define PUBLIC_API __declspec(dllimport)
@@ -42,6 +42,7 @@ typedef enum Triangle_ { kUpper = 121, kLower = 122 } Triangle;
typedef enum Diagonal_ { kNonUnit = 131, kUnit = 132 } Diagonal;
typedef enum Side_ { kLeft = 141, kRight = 142 } Side;
+
// =================================================================================================
// BLAS level-1 (vector-vector) routines
// =================================================================================================
@@ -103,9 +104,6 @@ void PUBLIC_API cblas_cswap(const int n,
void PUBLIC_API cblas_zswap(const int n,
void* x, const int x_inc,
void* y, const int y_inc);
-void PUBLIC_API cblas_hswap(const int n,
- void* x, const int x_inc,
- void* y, const int y_inc);
// Vector scaling: SSCAL/DSCAL/CSCAL/ZSCAL/HSCAL
void PUBLIC_API cblas_sscal(const int n,
@@ -120,9 +118,6 @@ void PUBLIC_API cblas_cscal(const int n,
void PUBLIC_API cblas_zscal(const int n,
const void* alpha,
void* x, const int x_inc);
-void PUBLIC_API cblas_hscal(const int n,
- const void* alpha,
- void* x, const int x_inc);
// Vector copy: SCOPY/DCOPY/CCOPY/ZCOPY/HCOPY
void PUBLIC_API cblas_scopy(const int n,
@@ -137,9 +132,6 @@ void PUBLIC_API cblas_ccopy(const int n,
void PUBLIC_API cblas_zcopy(const int n,
const void* x, const int x_inc,
void* y, const int y_inc);
-void PUBLIC_API cblas_hcopy(const int n,
- const void* x, const int x_inc,
- void* y, const int y_inc);
// Vector-times-constant plus vector: SAXPY/DAXPY/CAXPY/ZAXPY/HAXPY
void PUBLIC_API cblas_saxpy(const int n,
@@ -158,10 +150,6 @@ void PUBLIC_API cblas_zaxpy(const int n,
const void* alpha,
const void* x, const int x_inc,
void* y, const int y_inc);
-void PUBLIC_API cblas_haxpy(const int n,
- const void* alpha,
- const void* x, const int x_inc,
- void* y, const int y_inc);
// Dot product of two vectors: SDOT/DDOT/HDOT
void PUBLIC_API cblas_sdot(const int n,
@@ -172,10 +160,6 @@ void PUBLIC_API cblas_ddot(const int n,
double* dot,
const double* x, const int x_inc,
const double* y, const int y_inc);
-void PUBLIC_API cblas_hdot(const int n,
- void* dot,
- const void* x, const int x_inc,
- const void* y, const int y_inc);
// Dot product of two complex vectors: CDOTU/ZDOTU
void PUBLIC_API cblas_cdotu(const int n,
@@ -210,9 +194,6 @@ void PUBLIC_API cblas_scnrm2(const int n,
void PUBLIC_API cblas_dznrm2(const int n,
void* nrm2,
const void* x, const int x_inc);
-void PUBLIC_API cblas_hnrm2(const int n,
- void* nrm2,
- const void* x, const int x_inc);
// Absolute sum of values in a vector: SASUM/DASUM/ScASUM/DzASUM/HASUM
void PUBLIC_API cblas_sasum(const int n,
@@ -227,9 +208,6 @@ void PUBLIC_API cblas_scasum(const int n,
void PUBLIC_API cblas_dzasum(const int n,
void* asum,
const void* x, const int x_inc);
-void PUBLIC_API cblas_hasum(const int n,
- void* asum,
- const void* x, const int x_inc);
// Sum of values in a vector (non-BLAS function): SSUM/DSUM/ScSUM/DzSUM/HSUM
void PUBLIC_API cblas_ssum(const int n,
@@ -244,9 +222,6 @@ void PUBLIC_API cblas_scsum(const int n,
void PUBLIC_API cblas_dzsum(const int n,
void* sum,
const void* x, const int x_inc);
-void PUBLIC_API cblas_hsum(const int n,
- void* sum,
- const void* x, const int x_inc);
// Index of absolute maximum value in a vector: iSAMAX/iDAMAX/iCAMAX/iZAMAX/iHAMAX
void PUBLIC_API cblas_isamax(const int n,
@@ -261,9 +236,6 @@ void PUBLIC_API cblas_icamax(const int n,
void PUBLIC_API cblas_izamax(const int n,
void* imax,
const void* x, const int x_inc);
-void PUBLIC_API cblas_ihamax(const int n,
- void* imax,
- const void* x, const int x_inc);
// Index of maximum value in a vector (non-BLAS function): iSMAX/iDMAX/iCMAX/iZMAX/iHMAX
void PUBLIC_API cblas_ismax(const int n,
@@ -278,9 +250,6 @@ void PUBLIC_API cblas_icmax(const int n,
void PUBLIC_API cblas_izmax(const int n,
void* imax,
const void* x, const int x_inc);
-void PUBLIC_API cblas_ihmax(const int n,
- void* imax,
- const void* x, const int x_inc);
// Index of minimum value in a vector (non-BLAS function): iSMIN/iDMIN/iCMIN/iZMIN/iHMIN
void PUBLIC_API cblas_ismin(const int n,
@@ -295,9 +264,6 @@ void PUBLIC_API cblas_icmin(const int n,
void PUBLIC_API cblas_izmin(const int n,
void* imin,
const void* x, const int x_inc);
-void PUBLIC_API cblas_ihmin(const int n,
- void* imin,
- const void* x, const int x_inc);
// =================================================================================================
// BLAS level-2 (matrix-vector) routines
@@ -332,13 +298,6 @@ void PUBLIC_API cblas_zgemv(const Layout layout, const Transpose a_transpose,
const void* x, const int x_inc,
const void* beta,
void* y, const int y_inc);
-void PUBLIC_API cblas_hgemv(const Layout layout, const Transpose a_transpose,
- const int m, const int n,
- const void* alpha,
- const void* a, const int a_ld,
- const void* x, const int x_inc,
- const void* beta,
- void* y, const int y_inc);
// General banded matrix-vector multiplication: SGBMV/DGBMV/CGBMV/ZGBMV/HGBMV
void PUBLIC_API cblas_sgbmv(const Layout layout, const Transpose a_transpose,
@@ -369,13 +328,6 @@ void PUBLIC_API cblas_zgbmv(const Layout layout, const Transpose a_transpose,
const void* x, const int x_inc,
const void* beta,
void* y, const int y_inc);
-void PUBLIC_API cblas_hgbmv(const Layout layout, const Transpose a_transpose,
- const int m, const int n, const int kl, const int ku,
- const void* alpha,
- const void* a, const int a_ld,
- const void* x, const int x_inc,
- const void* beta,
- void* y, const int y_inc);
// Hermitian matrix-vector multiplication: CHEMV/ZHEMV
void PUBLIC_API cblas_chemv(const Layout layout, const Triangle triangle,
@@ -440,13 +392,6 @@ void PUBLIC_API cblas_dsymv(const Layout layout, const Triangle triangle,
const double* x, const int x_inc,
const double beta,
double* y, const int y_inc);
-void PUBLIC_API cblas_hsymv(const Layout layout, const Triangle triangle,
- const int n,
- const void* alpha,
- const void* a, const int a_ld,
- const void* x, const int x_inc,
- const void* beta,
- void* y, const int y_inc);
// Symmetric banded matrix-vector multiplication: SSBMV/DSBMV/HSBMV
void PUBLIC_API cblas_ssbmv(const Layout layout, const Triangle triangle,
@@ -463,13 +408,6 @@ void PUBLIC_API cblas_dsbmv(const Layout layout, const Triangle triangle,
const double* x, const int x_inc,
const double beta,
double* y, const int y_inc);
-void PUBLIC_API cblas_hsbmv(const Layout layout, const Triangle triangle,
- const int n, const int k,
- const void* alpha,
- const void* a, const int a_ld,
- const void* x, const int x_inc,
- const void* beta,
- void* y, const int y_inc);
// Symmetric packed matrix-vector multiplication: SSPMV/DSPMV/HSPMV
void PUBLIC_API cblas_sspmv(const Layout layout, const Triangle triangle,
@@ -486,13 +424,6 @@ void PUBLIC_API cblas_dspmv(const Layout layout, const Triangle triangle,
const double* x, const int x_inc,
const double beta,
double* y, const int y_inc);
-void PUBLIC_API cblas_hspmv(const Layout layout, const Triangle triangle,
- const int n,
- const void* alpha,
- const void* ap,
- const void* x, const int x_inc,
- const void* beta,
- void* y, const int y_inc);
// Triangular matrix-vector multiplication: STRMV/DTRMV/CTRMV/ZTRMV/HTRMV
void PUBLIC_API cblas_strmv(const Layout layout, const Triangle triangle, const Transpose a_transpose, const Diagonal diagonal,
@@ -511,10 +442,6 @@ void PUBLIC_API cblas_ztrmv(const Layout layout, const Triangle triangle, const
const int n,
const void* a, const int a_ld,
void* x, const int x_inc);
-void PUBLIC_API cblas_htrmv(const Layout layout, const Triangle triangle, const Transpose a_transpose, const Diagonal diagonal,
- const int n,
- const void* a, const int a_ld,
- void* x, const int x_inc);
// Triangular banded matrix-vector multiplication: STBMV/DTBMV/CTBMV/ZTBMV/HTBMV
void PUBLIC_API cblas_stbmv(const Layout layout, const Triangle triangle, const Transpose a_transpose, const Diagonal diagonal,
@@ -533,10 +460,6 @@ void PUBLIC_API cblas_ztbmv(const Layout layout, const Triangle triangle, const
const int n, const int k,
const void* a, const int a_ld,
void* x, const int x_inc);
-void PUBLIC_API cblas_htbmv(const Layout layout, const Triangle triangle, const Transpose a_transpose, const Diagonal diagonal,
- const int n, const int k,
- const void* a, const int a_ld,
- void* x, const int x_inc);
// Triangular packed matrix-vector multiplication: STPMV/DTPMV/CTPMV/ZTPMV/HTPMV
void PUBLIC_API cblas_stpmv(const Layout layout, const Triangle triangle, const Transpose a_transpose, const Diagonal diagonal,
@@ -555,10 +478,6 @@ void PUBLIC_API cblas_ztpmv(const Layout layout, const Triangle triangle, const
const int n,
const void* ap,
void* x, const int x_inc);
-void PUBLIC_API cblas_htpmv(const Layout layout, const Triangle triangle, const Transpose a_transpose, const Diagonal diagonal,
- const int n,
- const void* ap,
- void* x, const int x_inc);
// Solves a triangular system of equations: STRSV/DTRSV/CTRSV/ZTRSV
void PUBLIC_API cblas_strsv(const Layout layout, const Triangle triangle, const Transpose a_transpose, const Diagonal diagonal,
@@ -627,12 +546,6 @@ void PUBLIC_API cblas_dger(const Layout layout,
const double* x, const int x_inc,
const double* y, const int y_inc,
double* a, const int a_ld);
-void PUBLIC_API cblas_hger(const Layout layout,
- const int m, const int n,
- const void* alpha,
- const void* x, const int x_inc,
- const void* y, const int y_inc,
- void* a, const int a_ld);
// General rank-1 complex matrix update: CGERU/ZGERU
void PUBLIC_API cblas_cgeru(const Layout layout,
@@ -725,11 +638,6 @@ void PUBLIC_API cblas_dsyr(const Layout layout, const Triangle triangle,
const double alpha,
const double* x, const int x_inc,
double* a, const int a_ld);
-void PUBLIC_API cblas_hsyr(const Layout layout, const Triangle triangle,
- const int n,
- const void* alpha,
- const void* x, const int x_inc,
- void* a, const int a_ld);
// Symmetric packed rank-1 matrix update: SSPR/DSPR/HSPR
void PUBLIC_API cblas_sspr(const Layout layout, const Triangle triangle,
@@ -742,11 +650,6 @@ void PUBLIC_API cblas_dspr(const Layout layout, const Triangle triangle,
const double alpha,
const double* x, const int x_inc,
double* ap);
-void PUBLIC_API cblas_hspr(const Layout layout, const Triangle triangle,
- const int n,
- const void* alpha,
- const void* x, const int x_inc,
- void* ap);
// Symmetric rank-2 matrix update: SSYR2/DSYR2/HSYR2
void PUBLIC_API cblas_ssyr2(const Layout layout, const Triangle triangle,
@@ -761,12 +664,6 @@ void PUBLIC_API cblas_dsyr2(const Layout layout, const Triangle triangle,
const double* x, const int x_inc,
const double* y, const int y_inc,
double* a, const int a_ld);
-void PUBLIC_API cblas_hsyr2(const Layout layout, const Triangle triangle,
- const int n,
- const void* alpha,
- const void* x, const int x_inc,
- const void* y, const int y_inc,
- void* a, const int a_ld);
// Symmetric packed rank-2 matrix update: SSPR2/DSPR2/HSPR2
void PUBLIC_API cblas_sspr2(const Layout layout, const Triangle triangle,
@@ -781,12 +678,6 @@ void PUBLIC_API cblas_dspr2(const Layout layout, const Triangle triangle,
const double* x, const int x_inc,
const double* y, const int y_inc,
double* ap);
-void PUBLIC_API cblas_hspr2(const Layout layout, const Triangle triangle,
- const int n,
- const void* alpha,
- const void* x, const int x_inc,
- const void* y, const int y_inc,
- void* ap);
// =================================================================================================
// BLAS level-3 (matrix-matrix) routines
@@ -821,13 +712,6 @@ void PUBLIC_API cblas_zgemm(const Layout layout, const Transpose a_transpose, co
const void* b, const int b_ld,
const void* beta,
void* c, const int c_ld);
-void PUBLIC_API cblas_hgemm(const Layout layout, const Transpose a_transpose, const Transpose b_transpose,
- const int m, const int n, const int k,
- const void* alpha,
- const void* a, const int a_ld,
- const void* b, const int b_ld,
- const void* beta,
- void* c, const int c_ld);
// Symmetric matrix-matrix multiplication: SSYMM/DSYMM/CSYMM/ZSYMM/HSYMM
void PUBLIC_API cblas_ssymm(const Layout layout, const Side side, const Triangle triangle,
@@ -858,13 +742,6 @@ void PUBLIC_API cblas_zsymm(const Layout layout, const Side side, const Triangle
const void* b, const int b_ld,
const void* beta,
void* c, const int c_ld);
-void PUBLIC_API cblas_hsymm(const Layout layout, const Side side, const Triangle triangle,
- const int m, const int n,
- const void* alpha,
- const void* a, const int a_ld,
- const void* b, const int b_ld,
- const void* beta,
- void* c, const int c_ld);
// Hermitian matrix-matrix multiplication: CHEMM/ZHEMM
void PUBLIC_API cblas_chemm(const Layout layout, const Side side, const Triangle triangle,
@@ -907,12 +784,6 @@ void PUBLIC_API cblas_zsyrk(const Layout layout, const Triangle triangle, const
const void* a, const int a_ld,
const void* beta,
void* c, const int c_ld);
-void PUBLIC_API cblas_hsyrk(const Layout layout, const Triangle triangle, const Transpose a_transpose,
- const int n, const int k,
- const void* alpha,
- const void* a, const int a_ld,
- const void* beta,
- void* c, const int c_ld);
// Rank-K update of a hermitian matrix: CHERK/ZHERK
void PUBLIC_API cblas_cherk(const Layout layout, const Triangle triangle, const Transpose a_transpose,
@@ -957,13 +828,6 @@ void PUBLIC_API cblas_zsyr2k(const Layout layout, const Triangle triangle, const
const void* b, const int b_ld,
const void* beta,
void* c, const int c_ld);
-void PUBLIC_API cblas_hsyr2k(const Layout layout, const Triangle triangle, const Transpose ab_transpose,
- const int n, const int k,
- const void* alpha,
- const void* a, const int a_ld,
- const void* b, const int b_ld,
- const void* beta,
- void* c, const int c_ld);
// Rank-2K update of a hermitian matrix: CHER2K/ZHER2K
void PUBLIC_API cblas_cher2k(const Layout layout, const Triangle triangle, const Transpose ab_transpose,
@@ -1002,11 +866,6 @@ void PUBLIC_API cblas_ztrmm(const Layout layout, const Side side, const Triangle
const void* alpha,
const void* a, const int a_ld,
void* b, const int b_ld);
-void PUBLIC_API cblas_htrmm(const Layout layout, const Side side, const Triangle triangle, const Transpose a_transpose, const Diagonal diagonal,
- const int m, const int n,
- const void* alpha,
- const void* a, const int a_ld,
- void* b, const int b_ld);
// Solves a triangular system of equations: STRSM/DTRSM/CTRSM/ZTRSM/HTRSM
void PUBLIC_API cblas_strsm(const Layout layout, const Side side, const Triangle triangle, const Transpose a_transpose, const Diagonal diagonal,
@@ -1029,11 +888,6 @@ void PUBLIC_API cblas_ztrsm(const Layout layout, const Side side, const Triangle
const void* alpha,
const void* a, const int a_ld,
void* b, const int b_ld);
-void PUBLIC_API cblas_htrsm(const Layout layout, const Side side, const Triangle triangle, const Transpose a_transpose, const Diagonal diagonal,
- const int m, const int n,
- const void* alpha,
- const void* a, const int a_ld,
- void* b, const int b_ld);
// =================================================================================================
// Extra non-BLAS routines (level-X)
@@ -1060,12 +914,6 @@ void PUBLIC_API cblas_zomatcopy(const Layout layout, const Transpose a_transpose
const void* alpha,
const void* a, const int a_ld,
void* b, const int b_ld);
-void PUBLIC_API cblas_homatcopy(const Layout layout, const Transpose a_transpose,
- const int m, const int n,
- const void* alpha,
- const void* a, const int a_ld,
- void* b, const int b_ld);
- half* b, const size_t b_offset, const size_t b_ld);
// =================================================================================================
diff --git a/include/clblast_c.h b/include/clblast_c.h
index 81f093cd..72f50d83 100644
--- a/include/clblast_c.h
+++ b/include/clblast_c.h
@@ -117,11 +117,6 @@ typedef enum CLBlastDiagonal_ { CLBlastDiagonalNonUnit = 131,
CLBlastDiagonalUnit = 132 } CLBlastDiagonal;
typedef enum CLBlastSide_ { CLBlastSideLeft = 141, CLBlastSideRight = 142 } CLBlastSide;
-// Precision scoped enum (values in bits)
-typedef enum CLBlastPrecision_ { CLBlastPrecisionHalf = 16, CLBlastPrecisionSingle = 32,
- CLBlastPrecisionDouble = 64, CLBlastPrecisionComplexSingle = 3232,
- CLBlastPrecisionComplexDouble = 6464 } CLBlastPrecision;
-
// =================================================================================================
// BLAS level-1 (vector-vector) routines
// =================================================================================================