Commit b95cb7d4 authored by Davis King's avatar Davis King

Added casts to cblas calls to avoid conflicts with some definitions of the cblas API.

parent 4d793ddd
......@@ -3,6 +3,7 @@
#ifndef DLIB_MATRIx_BLAS_BINDINGS_
#define DLIB_MATRIx_BLAS_BINDINGS_
#ifndef DLIB_USE_BLAS
#error "DLIB_USE_BLAS should be defined if you want to use the BLAS bindings"
#endif
......@@ -161,14 +162,14 @@ namespace dlib
const int incX, std::complex<float> *Y, const int incY)
{
DLIB_TEST_BLAS_BINDING_AXPY;
cblas_caxpy(N, &alpha, X, incX, Y, incY);
cblas_caxpy(N, (float*)&alpha, (float*)X, incX, (float*)Y, incY);
}
inline void cblas_axpy(const int N, const std::complex<double>& alpha, const std::complex<double> *X,
const int incX, std::complex<double> *Y, const int incY)
{
DLIB_TEST_BLAS_BINDING_AXPY;
cblas_zaxpy(N, &alpha, X, incX, Y, incY);
cblas_zaxpy(N, (double*)&alpha, (double*)X, incX, (double*)Y, incY);
}
// ----------------------------------------------------------------------------------------
......@@ -188,13 +189,13 @@ namespace dlib
inline void cblas_scal(const int N, const std::complex<float>& alpha, std::complex<float> *X)
{
DLIB_TEST_BLAS_BINDING_SCAL;
cblas_cscal(N, &alpha, X, 1);
cblas_cscal(N, (float*)&alpha, (float*)X, 1);
}
inline void cblas_scal(const int N, const std::complex<double>& alpha, std::complex<double> *X)
{
DLIB_TEST_BLAS_BINDING_SCAL;
cblas_zscal(N, &alpha, X, 1);
cblas_zscal(N, (double*)&alpha, (double*)X, 1);
}
// ----------------------------------------------------------------------------------------
......@@ -229,7 +230,7 @@ namespace dlib
{
DLIB_TEST_BLAS_BINDING_GEMM;
cblas_cgemm( Order, TransA, TransB, M, N,
K, &alpha, A, lda, B, ldb, &beta, C, ldc);
K, (float*)&alpha, (float*)A, lda, (float*)B, ldb, (float*)&beta, (float*)C, ldc);
}
inline void cblas_gemm(const CBLAS_ORDER Order, const CBLAS_TRANSPOSE TransA,
......@@ -240,7 +241,7 @@ namespace dlib
{
DLIB_TEST_BLAS_BINDING_GEMM;
cblas_zgemm( Order, TransA, TransB, M, N,
K, &alpha, A, lda, B, ldb, &beta, C, ldc);
K, (double*)&alpha, (double*)A, lda, (double*)B, ldb, (double*)&beta, (double*)C, ldc);
}
// ----------------------------------------------------------------------------------------
......@@ -272,7 +273,7 @@ namespace dlib
std::complex<float> *Y, const int incY)
{
DLIB_TEST_BLAS_BINDING_GEMV;
cblas_cgemv(order, TransA, M, N, &alpha, A, lda, X, incX, &beta, Y, incY);
cblas_cgemv(order, TransA, M, N, (float*)&alpha, (float*)A, lda, (float*)X, incX, (float*)&beta, (float*)Y, incY);
}
inline void cblas_gemv(const CBLAS_ORDER order,
......@@ -282,7 +283,7 @@ namespace dlib
std::complex<double> *Y, const int incY)
{
DLIB_TEST_BLAS_BINDING_GEMV;
cblas_zgemv(order, TransA, M, N, &alpha, A, lda, X, incX, &beta, Y, incY);
cblas_zgemv(order, TransA, M, N, (double*)&alpha, (double*)A, lda, (double*)X, incX, (double*)&beta, (double*)Y, incY);
}
// ----------------------------------------------------------------------------------------
......@@ -292,7 +293,7 @@ namespace dlib
const std::complex<float> *Y, const int incY, std::complex<float> *A, const int lda)
{
DLIB_TEST_BLAS_BINDING_GER;
cblas_cgeru (order, M, N, &alpha, X, incX, Y, incY, A, lda);
cblas_cgeru (order, M, N, (float*)&alpha, (float*)X, incX, (float*)Y, incY, (float*)A, lda);
}
inline void cblas_ger(const CBLAS_ORDER order, const int M, const int N,
......@@ -300,7 +301,7 @@ namespace dlib
const std::complex<double> *Y, const int incY, std::complex<double> *A, const int lda)
{
DLIB_TEST_BLAS_BINDING_GER;
cblas_zgeru (order, M, N, &alpha, X, incX, Y, incY, A, lda);
cblas_zgeru (order, M, N, (double*)&alpha, (double*)X, incX, (double*)Y, incY, (double*)A, lda);
}
inline void cblas_ger(const CBLAS_ORDER order, const int M, const int N,
......@@ -308,7 +309,7 @@ namespace dlib
const float *Y, const int incY, float *A, const int lda)
{
DLIB_TEST_BLAS_BINDING_GER;
cblas_sger (order, M, N, alpha, X, incX, Y, incY, A, lda);
cblas_sger (order, M, N, alpha, (float*)X, incX, (float*)Y, incY, (float*)A, lda);
}
inline void cblas_ger(const CBLAS_ORDER order, const int M, const int N,
......@@ -316,7 +317,7 @@ namespace dlib
const double *Y, const int incY, double *A, const int lda)
{
DLIB_TEST_BLAS_BINDING_GER;
cblas_dger (order, M, N, alpha, X, incX, Y, incY, A, lda);
cblas_dger (order, M, N, alpha, (double*)X, incX, (double*)Y, incY, (double*)A, lda);
}
// ----------------------------------------------------------------------------------------
......@@ -326,7 +327,7 @@ namespace dlib
const std::complex<float> *Y, const int incY, std::complex<float> *A, const int lda)
{
DLIB_TEST_BLAS_BINDING_GER;
cblas_cgerc (order, M, N, &alpha, X, incX, Y, incY, A, lda);
cblas_cgerc (order, M, N, (float*)&alpha, (float*)X, incX, (float*)Y, incY, (float*)A, lda);
}
inline void cblas_gerc(const CBLAS_ORDER order, const int M, const int N,
......@@ -334,7 +335,7 @@ namespace dlib
const std::complex<double> *Y, const int incY, std::complex<double> *A, const int lda)
{
DLIB_TEST_BLAS_BINDING_GER;
cblas_zgerc (order, M, N, &alpha, X, incX, Y, incY, A, lda);
cblas_zgerc (order, M, N, (double*)&alpha, (double*)X, incX, (double*)Y, incY, (double*)A, lda);
}
// ----------------------------------------------------------------------------------------
......@@ -358,7 +359,7 @@ namespace dlib
{
DLIB_TEST_BLAS_BINDING_DOT;
std::complex<float> result;
cblas_cdotu_sub(N, X, incX, Y, incY, &result);
cblas_cdotu_sub(N, (float*)X, incX, (float*)Y, incY, (float*)&result);
return result;
}
......@@ -367,7 +368,7 @@ namespace dlib
{
DLIB_TEST_BLAS_BINDING_DOT;
std::complex<double> result;
cblas_zdotu_sub(N, X, incX, Y, incY, &result);
cblas_zdotu_sub(N, (double*)X, incX, (double*)Y, incY, (double*)&result);
return result;
}
......@@ -378,7 +379,7 @@ namespace dlib
{
DLIB_TEST_BLAS_BINDING_DOT;
std::complex<float> result;
cblas_cdotc_sub(N, X, incX, Y, incY, &result);
cblas_cdotc_sub(N, (float*)X, incX, (float*)Y, incY, (float*)&result);
return result;
}
......@@ -387,7 +388,7 @@ namespace dlib
{
DLIB_TEST_BLAS_BINDING_DOT;
std::complex<double> result;
cblas_zdotc_sub(N, X, incX, Y, incY, &result);
cblas_zdotc_sub(N, (double*)X, incX, (double*)Y, incY, (double*)&result);
return result;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment