Modify complex CBLAS functions to take void pointers

Modify complex CBLAS functions to take void pointers instead of float or double arguments (to bring the prototypes in line with netlib and other implementations' cblas.h)
This commit is contained in:
Martin Kroeker 2017-11-05 15:53:14 +01:00 committed by GitHub
parent 66ac898f64
commit 2c222f1faa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
31 changed files with 234 additions and 77 deletions

View File

@ -68,8 +68,12 @@ FLOATRET NAME(blasint *N, FLOAT *x, blasint *INCX){
}
#else
#ifdef COMPLEX
FLOAT CNAME(blasint n, void *vx, blasint incx){
FLOAT *x = (FLOAT*) vx;
#else
FLOAT CNAME(blasint n, FLOAT *x, blasint incx){
#endif
FLOAT ret;

View File

@ -54,7 +54,13 @@ void NAME(blasint *N, FLOAT *x, blasint *INCX, FLOAT *y, blasint *INCY){
#else
#ifdef COMPLEX
void CNAME(blasint n, void *vx, blasint incx, void *vy, blasint incy){
FLOAT *x = (FLOAT*) vx;
FLOAT *y = (FLOAT*) vy;
#else
void CNAME(blasint n, FLOAT *x, blasint incx, FLOAT *y, blasint incy){
#endif
PRINT_DEBUG_CNAME;

View File

@ -220,17 +220,22 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANS
blasint m, blasint n, blasint k,
#ifndef COMPLEX
FLOAT alpha,
#else
FLOAT *alpha,
#endif
FLOAT *a, blasint lda,
FLOAT *b, blasint ldb,
#ifndef COMPLEX
FLOAT beta,
#else
FLOAT *beta,
#endif
FLOAT *c, blasint ldc) {
#else
void *valpha,
void *va, blasint lda,
void *vb, blasint ldb,
void *vbeta,
void *vc, blasint ldc) {
FLOAT *alpha = (FLOAT*) valpha;
FLOAT *beta = (FLOAT*) vbeta;
FLOAT *a = (FLOAT*) va;
FLOAT *b = (FLOAT*) vb;
FLOAT *c = (FLOAT*) vc;
#endif
blas_arg_t args;
int transa, transb;

View File

@ -146,8 +146,12 @@ blasint NAME(blasint *N, FLOAT *x, blasint *INCX){
}
#else
#ifdef COMPLEX
CBLAS_INDEX CNAME(blasint n, void *vx, blasint incx){
FLOAT *x = (FLOAT*) vx;
#else
CBLAS_INDEX CNAME(blasint n, FLOAT *x, blasint incx){
#endif
CBLAS_INDEX ret;

View File

@ -69,7 +69,12 @@ FLOATRET NAME(blasint *N, FLOAT *x, blasint *INCX){
#else
#ifdef COMPLEX
FLOAT CNAME(blasint n, void *vx, blasint incx){
FLOAT *x = (FLOAT*) vx;
#else
FLOAT CNAME(blasint n, FLOAT *x, blasint incx){
#endif
FLOAT ret;

View File

@ -228,17 +228,22 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo,
blasint m, blasint n,
#ifndef COMPLEX
FLOAT alpha,
#else
FLOAT *alpha,
#endif
FLOAT *a, blasint lda,
FLOAT *b, blasint ldb,
#ifndef COMPLEX
FLOAT beta,
#else
FLOAT *beta,
#endif
FLOAT *c, blasint ldc) {
#else
void *valpha,
void *va, blasint lda,
void *vb, blasint ldb,
void *vbeta,
void *vc, blasint ldc) {
FLOAT *alpha = (FLOAT*) valpha;
FLOAT *beta = (FLOAT*) vbeta;
FLOAT *a = (FLOAT*) va;
FLOAT *b = (FLOAT*) vb;
FLOAT *c = (FLOAT*) vc;
#endif
blas_arg_t args;
int side, uplo;

View File

@ -185,17 +185,34 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE Tr
blasint n, blasint k,
#ifndef COMPLEX
FLOAT alpha,
#else
FLOAT *alpha,
#endif
FLOAT *a, blasint lda,
FLOAT *b, blasint ldb,
#else
void *valpha,
void *va, blasint lda,
void *vb, blasint ldb,
#endif
#if !defined(COMPLEX) || defined(HEMM)
FLOAT beta,
#else
FLOAT *beta,
void *vbeta,
#endif
#ifndef COMPLEX
FLOAT *c,
#else
void *vc,
#endif
blasint ldc) {
#ifdef COMPLEX
FLOAT* alpha = (FLOAT*) valpha;
#if !defined(HEMM)
FLOAT* beta = (FLOAT*) vbeta;
#endif
FLOAT* a = (FLOAT*) va;
FLOAT* b = (FLOAT*) vb;
FLOAT* c = (FLOAT*) vc;
#endif
FLOAT *c, blasint ldc) {
blas_arg_t args;
int uplo, trans;

View File

@ -188,15 +188,32 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE Tr
#if !defined(COMPLEX) || defined(HEMM)
FLOAT alpha,
#else
FLOAT *alpha,
void *valpha,
#endif
#if !defined(COMPLEX)
FLOAT *a, blasint lda,
#else
void *va, blasint lda,
#endif
#if !defined(COMPLEX) || defined(HEMM)
FLOAT beta,
#else
FLOAT *beta,
void *vbeta,
#endif
#if !defined(COMPLEX)
FLOAT *c, blasint ldc) {
#else
void *vc, blasint ldc) {
#endif
#ifdef COMPLEX
#if !defined(HEMM)
FLOAT* alpha = (FLOAT*) valpha;
FLOAT* beta = (FLOAT*) vbeta;
#endif
FLOAT* a = (FLOAT*) va;
FLOAT* c = (FLOAT*) vc;
#endif
blas_arg_t args;
int uplo, trans;

View File

@ -135,10 +135,17 @@ void NAME(char *UPLO, char *TRANS, char *DIAG,
}
#else
#ifndef COMPLEX
void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
blasint n, FLOAT *a, FLOAT *x, blasint incx) {
#else
void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
blasint n, void *va, void *vx, blasint incx) {
FLOAT *a = (FLOAT*) va;
FLOAT *x = (FLOAT*) vx;
#endif
int trans, uplo, unit;
blasint info;

View File

@ -210,11 +210,16 @@ void CNAME(enum CBLAS_ORDER order,
blasint m, blasint n,
#ifndef COMPLEX
FLOAT alpha,
#else
FLOAT *alpha,
#endif
FLOAT *a, blasint lda,
FLOAT *b, blasint ldb) {
#else
void *valpha,
void *va, blasint lda,
void *vb, blasint ldb) {
FLOAT *alpha = (FLOAT*) valpha;
FLOAT *a = (FLOAT*) va;
FLOAT *b = (FLOAT*) vb;
#endif
blas_arg_t args;
int side, uplo, trans, unit;

View File

@ -48,8 +48,12 @@ void NAME(blasint *N, FLOAT *ALPHA, FLOAT *x, blasint *INCX, FLOAT *BETA, FLOAT
#else
void CNAME(blasint n, FLOAT *ALPHA, FLOAT *x, blasint incx, FLOAT *BETA, FLOAT *y, blasint incy)
void CNAME(blasint n, void *VALPHA, void *vx, blasint incx, void *VBETA, void *vy, blasint incy)
{
FLOAT* ALPHA = (FLOAT*) VALPHA;
FLOAT* BETA = (FLOAT*) VBETA;
FLOAT* x = (FLOAT*) vx;
FLOAT* y = (FLOAT*) vy;
#endif

View File

@ -51,9 +51,14 @@ void NAME(blasint *N, FLOAT *ALPHA, FLOAT *x, blasint *INCX, FLOAT *y, blasint *
blasint incy = *INCY;
#else
#ifdef COMPLEX
void CNAME(blasint n, void *VALPHA, void *vx, blasint incx, void *vy, blasint incy){
FLOAT *ALPHA = (FLOAT*) VALPHA;
FLOAT *x = (FLOAT*) vx;
FLOAT *y = (FLOAT*) vy;
#else
void CNAME(blasint n, FLOAT *ALPHA, FLOAT *x, blasint incx, FLOAT *y, blasint incy){
#endif
#endif
FLOAT alpha_r = *(ALPHA + 0);

View File

@ -148,13 +148,15 @@ OPENBLAS_COMPLEX_FLOAT NAME( blasint *N, FLOAT *x, blasin
#else
#ifdef FORCE_USE_STACK
void CNAME(blasint n, FLOAT *x, blasint incx, FLOAT *y, blasint incy, OPENBLAS_COMPLEX_FLOAT *result){
void CNAME(blasint n, void *vx, blasint incx, void *vy, blasint incy, OPENBLAS_COMPLEX_FLOAT *result){
#else
OPENBLAS_COMPLEX_FLOAT CNAME(blasint n, FLOAT *x, blasint incx, FLOAT *y, blasint incy){
OPENBLAS_COMPLEX_FLOAT CNAME(blasint n, void *vx, blasint incx, void *vy, blasint incy){
OPENBLAS_COMPLEX_FLOAT ret;
OPENBLAS_COMPLEX_FLOAT zero=OPENBLAS_MAKE_COMPLEX_FLOAT(0.0, 0.0);
#endif
FLOAT *x = (FLOAT*) vx;
FLOAT *y = (FLOAT*) vy;
PRINT_DEBUG_CNAME;

View File

@ -149,11 +149,17 @@ void CNAME(enum CBLAS_ORDER order,
enum CBLAS_TRANSPOSE TransA,
blasint m, blasint n,
blasint ku, blasint kl,
FLOAT *ALPHA,
FLOAT *a, blasint lda,
FLOAT *x, blasint incx,
FLOAT *BETA,
FLOAT *y, blasint incy){
void *VALPHA,
void *va, blasint lda,
void *vx, blasint incx,
void *VBETA,
void *vy, blasint incy){
FLOAT* ALPHA = (FLOAT*) VALPHA;
FLOAT* BETA = (FLOAT*) VBETA;
FLOAT* a = (FLOAT*) va;
FLOAT* x = (FLOAT*) vx;
FLOAT* y = (FLOAT*) vy;
FLOAT alpha_r = ALPHA[0];
FLOAT alpha_i = ALPHA[1];

View File

@ -134,12 +134,17 @@ void NAME(char *TRANS, blasint *M, blasint *N,
void CNAME(enum CBLAS_ORDER order,
enum CBLAS_TRANSPOSE TransA,
blasint m, blasint n,
FLOAT *ALPHA,
FLOAT *a, blasint lda,
FLOAT *x, blasint incx,
FLOAT *BETA,
FLOAT *y, blasint incy){
void *VALPHA,
void *va, blasint lda,
void *vx, blasint incx,
void *VBETA,
void *vy, blasint incy){
FLOAT *ALPHA = (FLOAT*) VALPHA;
FLOAT *a = (FLOAT*) va;
FLOAT *x = (FLOAT*) vx;
FLOAT *BETA = (FLOAT*) VBETA;
FLOAT *y = (FLOAT*) vy;
FLOAT *buffer;
blasint lenx, leny;
int trans, buffer_size;

View File

@ -141,10 +141,15 @@ void NAME(blasint *M, blasint *N, FLOAT *Alpha,
void CNAME(enum CBLAS_ORDER order,
blasint m, blasint n,
FLOAT *Alpha,
FLOAT *x, blasint incx,
FLOAT *y, blasint incy,
FLOAT *a, blasint lda) {
void *VAlpha,
void *vx, blasint incx,
void *vy, blasint incy,
void *va, blasint lda) {
FLOAT* Alpha = (FLOAT*) VAlpha;
FLOAT* a = (FLOAT*) va;
FLOAT* x = (FLOAT*) vx;
FLOAT* y = (FLOAT*) vy;
FLOAT alpha_r = Alpha[0];
FLOAT alpha_i = Alpha[1];

View File

@ -125,11 +125,17 @@ void NAME(char *UPLO, blasint *N, blasint *K, FLOAT *ALPHA, FLOAT *a, blasint *
void CNAME(enum CBLAS_ORDER order,
enum CBLAS_UPLO Uplo,
blasint n, blasint k,
FLOAT *ALPHA,
FLOAT *a, blasint lda,
FLOAT *x, blasint incx,
FLOAT *BETA,
FLOAT *y, blasint incy){
void *VALPHA,
void *va, blasint lda,
void *vx, blasint incx,
void *VBETA,
void *vy, blasint incy){
FLOAT* ALPHA = (FLOAT*) VALPHA;
FLOAT* BETA = (FLOAT*) VBETA;
FLOAT* a = (FLOAT*) va;
FLOAT* x = (FLOAT*) vx;
FLOAT* y = (FLOAT*) vy;
FLOAT alpha_r = ALPHA[0];
FLOAT alpha_i = ALPHA[1];

View File

@ -108,8 +108,14 @@ void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *a, blasint *LDA,
#else
void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, FLOAT *ALPHA,
FLOAT *a, blasint lda, FLOAT *x, blasint incx, FLOAT *BETA, FLOAT *y, blasint incy) {
void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, void *VALPHA,
void *va, blasint lda, void *vx, blasint incx, void *VBETA, void *vy, blasint incy) {
FLOAT* ALPHA = (FLOAT*) VALPHA;
FLOAT* BETA = (FLOAT*) VBETA;
FLOAT* a = (FLOAT*) va;
FLOAT* x = (FLOAT*) vx;
FLOAT* y = (FLOAT*) vy;
FLOAT alpha_r = ALPHA[0];
FLOAT alpha_i = ALPHA[1];

View File

@ -113,7 +113,10 @@ void NAME(char *UPLO, blasint *N, FLOAT *ALPHA,
#else
void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, FLOAT alpha, FLOAT *x, blasint incx, FLOAT *a, blasint lda) {
void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, FLOAT alpha, void *vx, blasint incx, void *va, blasint lda) {
FLOAT* a = (FLOAT*) va;
FLOAT* x = (FLOAT*) vx;
FLOAT *buffer;
int uplo;

View File

@ -116,7 +116,12 @@ void NAME(char *UPLO, blasint *N, FLOAT *ALPHA,
#else
void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, FLOAT *ALPHA, FLOAT *x, blasint incx, FLOAT *y, blasint incy, FLOAT *a, blasint lda) {
void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, void *VALPHA, void *vx, blasint incx, void *vy, blasint incy, void *va, blasint lda) {
FLOAT* ALPHA = (FLOAT*) VALPHA;
FLOAT* a = (FLOAT*) va;
FLOAT* x = (FLOAT*) vx;
FLOAT* y = (FLOAT*) vy;
FLOAT alpha_r = ALPHA[0];
FLOAT alpha_i = ALPHA[1];

View File

@ -119,11 +119,17 @@ void NAME(char *UPLO, blasint *N, FLOAT *ALPHA, FLOAT *a,
void CNAME(enum CBLAS_ORDER order,
enum CBLAS_UPLO Uplo,
blasint n,
FLOAT *ALPHA,
FLOAT *a,
FLOAT *x, blasint incx,
FLOAT *BETA,
FLOAT *y, blasint incy){
void *VALPHA,
void *va,
void *vx, blasint incx,
void *VBETA,
void *vy, blasint incy){
FLOAT* ALPHA = (FLOAT*) VALPHA;
FLOAT* BETA = (FLOAT*) VBETA;
FLOAT* a = (FLOAT*) va;
FLOAT* x = (FLOAT*) vx;
FLOAT* y = (FLOAT*) vy;
FLOAT alpha_r = ALPHA[0];
FLOAT alpha_i = ALPHA[1];

View File

@ -115,8 +115,11 @@ void CNAME(enum CBLAS_ORDER order,
enum CBLAS_UPLO Uplo,
blasint n,
FLOAT alpha,
FLOAT *x, blasint incx,
FLOAT *a) {
void *vx, blasint incx,
void *va) {
FLOAT* x = (FLOAT*) vx;
FLOAT* a = (FLOAT*) va;
FLOAT *buffer;
int uplo;

View File

@ -117,10 +117,15 @@ void NAME(char *UPLO, blasint *N, FLOAT *ALPHA,
void CNAME(enum CBLAS_ORDER order,
enum CBLAS_UPLO Uplo,
blasint n,
FLOAT *ALPHA,
FLOAT *x, blasint incx,
FLOAT *y, blasint incy,
FLOAT *a) {
void *VALPHA,
void *vx, blasint incx,
void *vy, blasint incy,
void *va) {
FLOAT* ALPHA = (FLOAT*) VALPHA;
FLOAT* x = (FLOAT*) vx;
FLOAT* y = (FLOAT*) vy;
FLOAT* a = (FLOAT*) va;
FLOAT alpha_r = ALPHA[0];
FLOAT alpha_i = ALPHA[1];

View File

@ -58,11 +58,13 @@ void NAME(blasint *N, FLOAT *ALPHA, FLOAT *x, blasint *INCX){
#else
#ifndef SSCAL
void CNAME(blasint n, FLOAT *ALPHA, FLOAT *x, blasint incx){
void CNAME(blasint n, void *VALPHA, void *vx, blasint incx){
FLOAT *alpha=ALPHA;
FLOAT *x = (FLOAT*) vx;
FLOAT *alpha=(FLOAT*)VALPHA;
#else
void CNAME(blasint n, FLOAT alpha_r, FLOAT *x, blasint incx){
void CNAME(blasint n, FLOAT alpha_r, void *vx, blasint incx){
FLOAT *x = (FLOAT*) vx;
FLOAT alpha[2] = {alpha_r, ZERO};
#endif

View File

@ -52,8 +52,9 @@ void NAME(blasint *N, FLOAT *x, blasint *INCX, FLOAT *y, blasint *INCY){
#else
void CNAME(blasint n, FLOAT *x, blasint incx, FLOAT *y, blasint incy){
void CNAME(blasint n, void *vx, blasint incx, void *vy, blasint incy){
FLOAT *x = (FLOAT*)vx;
FLOAT *y = (FLOAT*)vy;
#endif
#ifdef SMP

View File

@ -155,7 +155,10 @@ void NAME(char *UPLO, char *TRANS, char *DIAG,
void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
blasint n, blasint k, FLOAT *a, blasint lda, FLOAT *x, blasint incx) {
blasint n, blasint k, void *va, blasint lda, void *vx, blasint incx) {
FLOAT *a = (FLOAT*) va;
FLOAT *x = (FLOAT*) vx;
int trans, uplo, unit;
blasint info;

View File

@ -131,8 +131,11 @@ void NAME(char *UPLO, char *TRANS, char *DIAG,
void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
blasint n, blasint k, FLOAT *a, blasint lda, FLOAT *x, blasint incx) {
blasint n, blasint k, void *va, blasint lda, void *vx, blasint incx) {
FLOAT *a = (FLOAT*) va;
FLOAT *x = (FLOAT*) vx;
int trans, uplo, unit;
blasint info;
FLOAT *buffer;

View File

@ -150,8 +150,11 @@ void NAME(char *UPLO, char *TRANS, char *DIAG,
void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
blasint n, FLOAT *a, FLOAT *x, blasint incx) {
blasint n, void *va, void *vx, blasint incx) {
FLOAT *a = (FLOAT*) va;
FLOAT *x = (FLOAT*) vx;
int trans, uplo, unit;
blasint info;
FLOAT *buffer;

View File

@ -126,8 +126,11 @@ void NAME(char *UPLO, char *TRANS, char *DIAG,
void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
blasint n, FLOAT *a, FLOAT *x, blasint incx) {
blasint n, void *va, void *vx, blasint incx) {
FLOAT *a = (FLOAT*) va;
FLOAT *x = (FLOAT*) vx;
int trans, uplo, unit;
blasint info;
FLOAT *buffer;

View File

@ -152,8 +152,11 @@ void NAME(char *UPLO, char *TRANS, char *DIAG,
void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
blasint n, FLOAT *a, blasint lda, FLOAT *x, blasint incx) {
blasint n, void *va, blasint lda, void *vx, blasint incx) {
FLOAT *a = (FLOAT*) va;
FLOAT *x = (FLOAT*) vx;
int trans, uplo, unit, buffer_size;
blasint info;
FLOAT *buffer;

View File

@ -130,8 +130,11 @@ void NAME(char *UPLO, char *TRANS, char *DIAG,
void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,
enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
blasint n, FLOAT *a, blasint lda, FLOAT *x, blasint incx) {
blasint n, void *va, blasint lda, void *vx, blasint incx) {
FLOAT *a = (FLOAT*) va;
FLOAT *x = (FLOAT*) vx;
int trans, uplo, unit;
blasint info;
FLOAT *buffer;