aboutsummaryrefslogtreecommitdiffhomepage
path: root/blas
diff options
context:
space:
mode:
authorGravatar Sameer Agarwal <sameeragarwal@google.com>2019-02-27 11:30:58 -0800
committerGravatar Sameer Agarwal <sameeragarwal@google.com>2019-02-27 11:30:58 -0800
commitc181dfb8ab0a009795858670b4236d7e64a0c79e (patch)
treed02742e47b37a092563976718c86b9584947846b /blas
parent9558f4c25f6f8dc3d5fce9379f435d23d6b79f3d (diff)
Consistently use EIGEN_BLAS_FUNC in BLAS.
Previously, for a few functions, eithe BLASFUNC or, EIGEN_CAT was being used. This change uses EIGEN_BLAS_FUNC consistently everywhere. Also introduce EIGEN_BLAS_FUNC_SUFFIX, which by default is equal to "_", this allows the user to inject a new suffix as needed.
Diffstat (limited to 'blas')
-rw-r--r--blas/common.h6
-rw-r--r--blas/double.cpp2
-rw-r--r--blas/level1_cplx_impl.h8
-rw-r--r--blas/level1_impl.h4
-rw-r--r--blas/single.cpp2
5 files changed, 13 insertions, 9 deletions
diff --git a/blas/common.h b/blas/common.h
index 960c09cc6..a9b697842 100644
--- a/blas/common.h
+++ b/blas/common.h
@@ -166,6 +166,10 @@ T* copy_back(T* x_cpy, T* x, int n, int incx)
return x_cpy;
}
-#define EIGEN_BLAS_FUNC(X) EIGEN_CAT(SCALAR_SUFFIX,X##_)
+#ifndef EIGEN_BLAS_FUNC_SUFFIX
+#define EIGEN_BLAS_FUNC_SUFFIX _
+#endif
+
+#define EIGEN_BLAS_FUNC(X) EIGEN_CAT(SCALAR_SUFFIX, EIGEN_CAT(X, EIGEN_BLAS_FUNC_SUFFIX))
#endif // EIGEN_BLAS_COMMON_H
diff --git a/blas/double.cpp b/blas/double.cpp
index 295b1d1f2..eb2e57307 100644
--- a/blas/double.cpp
+++ b/blas/double.cpp
@@ -19,7 +19,7 @@
#include "level2_real_impl.h"
#include "level3_impl.h"
-double BLASFUNC(dsdot)(int* n, float* x, int* incx, float* y, int* incy)
+double EIGEN_BLAS_FUNC(sdot)(int* n, float* x, int* incx, float* y, int* incy)
{
if(*n<=0) return 0;
diff --git a/blas/level1_cplx_impl.h b/blas/level1_cplx_impl.h
index 719f5bac9..4ac457175 100644
--- a/blas/level1_cplx_impl.h
+++ b/blas/level1_cplx_impl.h
@@ -25,7 +25,7 @@ namespace Eigen {
// computes the sum of magnitudes of all vector elements or, for a complex vector x, the sum
// res = |Rex1| + |Imx1| + |Rex2| + |Imx2| + ... + |Rexn| + |Imxn|, where x is a vector of order n
-RealScalar EIGEN_CAT(EIGEN_CAT(REAL_SCALAR_SUFFIX,SCALAR_SUFFIX),asum_)(int *n, RealScalar *px, int *incx)
+RealScalar EIGEN_CAT(REAL_SCALAR_SUFFIX, EIGEN_BLAS_FUNC(asum))(int *n, RealScalar *px, int *incx)
{
// std::cerr << "__asum " << *n << " " << *incx << "\n";
Complex* x = reinterpret_cast<Complex*>(px);
@@ -81,7 +81,7 @@ int EIGEN_BLAS_FUNC(dotuw)(int *n, RealScalar *px, int *incx, RealScalar *py, in
return 0;
}
-RealScalar EIGEN_CAT(EIGEN_CAT(REAL_SCALAR_SUFFIX,SCALAR_SUFFIX),nrm2_)(int *n, RealScalar *px, int *incx)
+RealScalar EIGEN_CAT(REAL_SCALAR_SUFFIX, EIGEN_BLAS_FUNC(nrm2))(int *n, RealScalar *px, int *incx)
{
// std::cerr << "__nrm2 " << *n << " " << *incx << "\n";
if(*n<=0) return 0;
@@ -94,7 +94,7 @@ RealScalar EIGEN_CAT(EIGEN_CAT(REAL_SCALAR_SUFFIX,SCALAR_SUFFIX),nrm2_)(int *n,
return make_vector(x,*n,*incx).stableNorm();
}
-int EIGEN_CAT(EIGEN_CAT(SCALAR_SUFFIX,REAL_SCALAR_SUFFIX),rot_)(int *n, RealScalar *px, int *incx, RealScalar *py, int *incy, RealScalar *pc, RealScalar *ps)
+int EIGEN_BLAS_FUNC(EIGEN_CAT(REAL_SCALAR_SUFFIX, rot))(int *n, RealScalar *px, int *incx, RealScalar *py, int *incy, RealScalar *pc, RealScalar *ps)
{
if(*n<=0) return 0;
@@ -117,7 +117,7 @@ int EIGEN_CAT(EIGEN_CAT(SCALAR_SUFFIX,REAL_SCALAR_SUFFIX),rot_)(int *n, RealScal
return 0;
}
-int EIGEN_CAT(EIGEN_CAT(SCALAR_SUFFIX,REAL_SCALAR_SUFFIX),scal_)(int *n, RealScalar *palpha, RealScalar *px, int *incx)
+int EIGEN_BLAS_FUNC(EIGEN_CAT(REAL_SCALAR_SUFFIX, scal))(int *n, RealScalar *palpha, RealScalar *px, int *incx)
{
if(*n<=0) return 0;
diff --git a/blas/level1_impl.h b/blas/level1_impl.h
index 6e7f8c976..d3ee03477 100644
--- a/blas/level1_impl.h
+++ b/blas/level1_impl.h
@@ -51,7 +51,7 @@ int EIGEN_BLAS_FUNC(copy)(int *n, RealScalar *px, int *incx, RealScalar *py, int
return 0;
}
-int EIGEN_CAT(EIGEN_CAT(i,SCALAR_SUFFIX),amax_)(int *n, RealScalar *px, int *incx)
+int EIGEN_CAT(i, EIGEN_BLAS_FUNC(amax))(int *n, RealScalar *px, int *incx)
{
if(*n<=0) return 0;
Scalar* x = reinterpret_cast<Scalar*>(px);
@@ -62,7 +62,7 @@ int EIGEN_CAT(EIGEN_CAT(i,SCALAR_SUFFIX),amax_)(int *n, RealScalar *px, int *inc
return int(ret)+1;
}
-int EIGEN_CAT(EIGEN_CAT(i,SCALAR_SUFFIX),amin_)(int *n, RealScalar *px, int *incx)
+int EIGEN_CAT(i, EIGEN_BLAS_FUNC(amin))(int *n, RealScalar *px, int *incx)
{
if(*n<=0) return 0;
Scalar* x = reinterpret_cast<Scalar*>(px);
diff --git a/blas/single.cpp b/blas/single.cpp
index 20ea57d5c..e66879aea 100644
--- a/blas/single.cpp
+++ b/blas/single.cpp
@@ -18,5 +18,5 @@
#include "level2_real_impl.h"
#include "level3_impl.h"
-float BLASFUNC(sdsdot)(int* n, float* alpha, float* x, int* incx, float* y, int* incy)
+float EIGEN_BLAS_FUNC(dsdot)(int* n, float* alpha, float* x, int* incx, float* y, int* incy)
{ return double(*alpha) + BLASFUNC(dsdot)(n, x, incx, y, incy); }