Bläddra i källkod

Add a wrapper for DDOT

Cédric Augonnet 14 år sedan
förälder
incheckning
0828950dd7
2 ändrade filer med 12 tillägg och 0 borttagningar
  1. 10 0
      examples/common/blas.c
  2. 2 0
      examples/common/blas.h

+ 10 - 0
examples/common/blas.c

@@ -222,6 +222,11 @@ float SDOT(const int n, const float *x, const int incx, const float *y, const in
 	return cblas_sdot(n, x, incx, y, incy);
 }
 
+double DDOT(const int n, const double *x, const int incx, const double *y, const int incy)
+{
+	return cblas_ddot(n, x, incx, y, incy);
+}
+
 void SSWAP(const int n, float *x, const int incx, float *y, const int incy)
 {
 	cblas_sswap(n, x, incx, y, incy);
@@ -393,6 +398,11 @@ float SDOT(const int n, const float *x, const int incx, const float *y, const in
 	return retVal;
 }
 
+double DDOT(const int n, const double *x, const int incx, const double *y, const int incy)
+{
+	return ddot_(&n, x, &incx, y, &incy);
+}
+
 void SSWAP(const int n, float *X, const int incX, float *Y, const int incY)
 {
 	sswap_(&n, X, &incX, Y, &incY);

+ 2 - 0
examples/common/blas.h

@@ -73,6 +73,7 @@ void DAXPY(const int n, const double alpha, double *X, const int incX, double *Y
 int ISAMAX (const int n, float *X, const int incX);
 int IDAMAX (const int n, double *X, const int incX);
 float SDOT(const int n, const float *x, const int incx, const float *y, const int incy);
+double DDOT(const int n, const double *x, const int incx, const double *y, const int incy);
 void SSWAP(const int n, float *x, const int incx, float *y, const int incy);
 void DSWAP(const int n, double *x, const int incx, double *y, const int incy);
 
@@ -136,6 +137,7 @@ extern int isamax_(const int *n, float *X, const int *incX);
 extern int idamax_(const int *n, double *X, const int *incX);
 /* for some reason, FLOATRET is not a float but a double in GOTOBLAS */
 extern double sdot_(const int *n, const float *x, const int *incx, const float *y, const int *incy);
+extern double ddot_(const int *n, const double *x, const int *incx, const double *y, const int *incy);
 extern void sswap_(const int *n, float *x, const int *incx, float *y, const int *incy);
 extern void dswap_(const int *n, double *x, const int *incx, double *y, const int *incy);