Browse Source

C style casts of complex values for gcc.

cuda
Kuan Bartel 12 years ago
committed by Christoph Ruegg
parent
commit
19fd215388
  1. 16
      src/NativeProviders/OpenBLAS/blas.c

16
src/NativeProviders/OpenBLAS/blas.c

@ -13,11 +13,11 @@ DLLEXPORT void d_axpy(const blasint n, const double alpha, const double x[], dou
}
DLLEXPORT void c_axpy(const blasint n, const openblas_complex_float alpha, const openblas_complex_float x[], openblas_complex_float y[]){
cblas_caxpy(n, &(alpha.real), &(x->real), 1, &(y->real), 1);
cblas_caxpy(n, (float*)&alpha, (float*)x, 1, (float*)y, 1);
}
DLLEXPORT void z_axpy(const blasint n, const openblas_complex_double alpha, const openblas_complex_double x[], openblas_complex_double y[]){
cblas_zaxpy(n, &(alpha.real), &(x->real), 1, &(y->real), 1);
cblas_zaxpy(n, (double*)&alpha, (double*)x, 1, (double*)y, 1);
}
DLLEXPORT void s_scale(const blasint n, const float alpha, float x[]){
@ -29,11 +29,11 @@ DLLEXPORT void d_scale(const blasint n, const double alpha, double x[]){
}
DLLEXPORT void c_scale(const blasint n, const openblas_complex_float alpha, openblas_complex_float x[]){
cblas_cscal(n, &(alpha.real), &(x->real), 1);
cblas_cscal(n, (float*)&alpha, (float*)x, 1);
}
DLLEXPORT void z_scale(const blasint n, const openblas_complex_double alpha, openblas_complex_double x[]){
cblas_zscal(n, &(alpha.real), &(x->real), 1);
cblas_zscal(n, (double*)&alpha, (double*)x, 1);
}
DLLEXPORT float s_dot_product(const blasint n, const float x[], const float y[]){
@ -46,13 +46,13 @@ DLLEXPORT double d_dot_product(const blasint n, const double x[], const double y
DLLEXPORT openblas_complex_float c_dot_product(const blasint n, const openblas_complex_float x[], const openblas_complex_float y[]){
openblas_complex_float ret;
cblas_cdotu_sub(n, &(x->real), 1, &(y->real), 1, &ret);
cblas_cdotu_sub(n, (float*)x, 1, (float*)y, 1, &ret);
return ret;
}
DLLEXPORT openblas_complex_double z_dot_product(const blasint n, const openblas_complex_double x[], const openblas_complex_double y[]){
openblas_complex_double ret;
cblas_zdotu_sub(n, &(x->real), 1, &(y->real), 1, &ret);
cblas_zdotu_sub(n, (double*)x, 1, (double*)y, 1, &ret);
return ret;
}
@ -74,14 +74,14 @@ DLLEXPORT void c_matrix_multiply(CBLAS_TRANSPOSE transA, CBLAS_TRANSPOSE transB,
blasint lda = transA == CblasNoTrans ? m : k;
blasint ldb = transB == CblasNoTrans ? k : n;
cblas_cgemm(CblasColMajor, transA, transB, m, n, k, &(alpha.real), &(x->real), lda, &(y->real), ldb, &(beta.real), &(c->real), m);
cblas_cgemm(CblasColMajor, transA, transB, m, n, k, (float*)&alpha, (float*)x, lda, (float*)y, ldb, (float*)&beta, (float*)c, m);
}
DLLEXPORT void z_matrix_multiply(CBLAS_TRANSPOSE transA, CBLAS_TRANSPOSE transB, const blasint m, const blasint n, const blasint k, const openblas_complex_double alpha, const openblas_complex_double x[], const openblas_complex_double y[], const openblas_complex_double beta, openblas_complex_double c[]){
blasint lda = transA == CblasNoTrans ? m : k;
blasint ldb = transB == CblasNoTrans ? k : n;
cblas_zgemm(CblasColMajor, transA, transB, m, n, k, &(alpha.real), &(x->real), lda, &(y->real), ldb, &(beta.real), &(c->real), m);
cblas_zgemm(CblasColMajor, transA, transB, m, n, k, (double*)&alpha, (double*)x, lda, (double*)y, ldb, (double*)&beta, (double*)c, m);
}
#if GCC

Loading…
Cancel
Save