00001
00010 #if !defined(INC_OSKI_BLAS_NAMES_H)
00011
00012 #define INC_OSKI_BLAS_NAMES_H
00013
00014 #include <oski/config.h>
00015
00016 #if !defined(F77_FUNC)
00017
00018 #define F77_FUNC(x, y) x
00019 #endif
00020
00043 #define MAKE_BLAS_NAME0(tag, name, TAG, NAME) \
00044 F77_FUNC(tag ## name, TAG ## NAME)
00045
00050 #define MAKE_BLAS_NAME0_I(itag, tag, name, ITAG, TAG, NAME) \
00051 F77_FUNC(itag ## tag ## name, ITAG ## TAG ## NAME)
00052
00063 #define MAKE_BLAS_NAME1(tag, name, TAG, NAME) \
00064 MAKE_BLAS_NAME0(tag, name, TAG, NAME)
00065
00070 #define MAKE_BLAS_NAME1_I(itag, tag, name, ITAG, TAG, NAME) \
00071 MAKE_BLAS_NAME0_I(itag, tag, name, ITAG, TAG, NAME)
00072
00081 #define MAKE_BLAS_NAME(name, NAME) \
00082 MAKE_BLAS_NAME1(VAL_TAG, name, VAL_TAG_CAPS, NAME)
00083
00088 #define MAKE_BLAS_NAME_I(name, NAME) \
00089 MAKE_BLAS_NAME1_I(IND_TAG, VAL_TAG, name, \
00090 IND_TAG_CAPS, VAL_TAG_CAPS, NAME)
00091
00097 #if IND_TAG_CHAR == 'i'
00098 # define BLAS_xSCAL MAKE_BLAS_NAME(scal, SCAL)
00099 # define BLAS_xAXPY MAKE_BLAS_NAME(axpy, AXPY)
00100 # define BLAS_xGEMV MAKE_BLAS_NAME(gemv, GEMV)
00101 # define BLAS_xTRSV MAKE_BLAS_NAME(trsv, TRSV)
00102 #else
00103 # define BLAS_xSCAL MAKE_BLAS_NAME_I(scal, SCAL)
00104 # define BLAS_xAXPY MAKE_BLAS_NAME_I(axpy, AXPY)
00105 # define BLAS_xGEMV MAKE_BLAS_NAME_I(gemv, GEMV)
00106 # define BLAS_xTRSV MAKE_BLAS_NAME_I(trsv, TRSV)
00107 #endif
00108
00119 void BLAS_xSCAL (const oski_index_t * len, oski_value_t * alpha,
00120 oski_value_t * x, const oski_index_t * stride);
00121
00133 void BLAS_xAXPY (const oski_index_t * len, const oski_value_t * alpha,
00134 const oski_value_t * x, const oski_index_t * incx,
00135 oski_value_t * y, const oski_index_t * incy);
00136
00154 void BLAS_xGEMV (const char *op,
00155 const oski_index_t * m, const oski_index_t * n,
00156 const oski_value_t * alpha,
00157 const oski_value_t * A, const oski_index_t * lda,
00158 const oski_value_t * x, const oski_index_t * incx,
00159 const oski_value_t * beta, oski_value_t * y,
00160 const oski_index_t * incy);
00161
00178 void BLAS_xTRSV (const char* shape, const char* op, const char* diag,
00179 const oski_index_t* n,
00180 const oski_value_t* A, const oski_index_t* lda,
00181 oski_value_t* x, const oski_index_t* incx);
00182
00183 #endif
00184
00185