mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-04-22 01:29:35 +08:00
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.
This commit is contained in:
parent
9558f4c25f
commit
c181dfb8ab
@ -166,6 +166,10 @@ T* copy_back(T* x_cpy, T* x, int n, int incx)
|
|||||||
return x_cpy;
|
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
|
#endif // EIGEN_BLAS_COMMON_H
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#include "level2_real_impl.h"
|
#include "level2_real_impl.h"
|
||||||
#include "level3_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;
|
if(*n<=0) return 0;
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ namespace Eigen {
|
|||||||
|
|
||||||
// computes the sum of magnitudes of all vector elements or, for a complex vector x, the sum
|
// 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
|
// 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";
|
// std::cerr << "__asum " << *n << " " << *incx << "\n";
|
||||||
Complex* x = reinterpret_cast<Complex*>(px);
|
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;
|
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";
|
// std::cerr << "__nrm2 " << *n << " " << *incx << "\n";
|
||||||
if(*n<=0) return 0;
|
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();
|
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;
|
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;
|
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;
|
if(*n<=0) return 0;
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ int EIGEN_BLAS_FUNC(copy)(int *n, RealScalar *px, int *incx, RealScalar *py, int
|
|||||||
return 0;
|
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;
|
if(*n<=0) return 0;
|
||||||
Scalar* x = reinterpret_cast<Scalar*>(px);
|
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;
|
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;
|
if(*n<=0) return 0;
|
||||||
Scalar* x = reinterpret_cast<Scalar*>(px);
|
Scalar* x = reinterpret_cast<Scalar*>(px);
|
||||||
|
@ -18,5 +18,5 @@
|
|||||||
#include "level2_real_impl.h"
|
#include "level2_real_impl.h"
|
||||||
#include "level3_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); }
|
{ return double(*alpha) + BLASFUNC(dsdot)(n, x, incx, y, incy); }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user