1 #include <cxxblas/cxxblas.cxx>
 2 
 3 extern "C" {
 4 
 5 #ifndef COMPLEX_FLOAT1
 6     typedef CBLAS_FLOAT                 CXXBLAS_FLOAT;
 7 #else
 8     typedef std::complex<CBLAS_FLOAT>   CXXBLAS_FLOAT;
 9 #endif
10 
11     void
12     CBLAS_NAME(CBLAS_INT n,
13                CBLAS_FLOAT *_x, CBLAS_INT incX,
14                CBLAS_FLOAT *_y, CBLAS_INT incY,
15                CBLAS_FLOAT c, CBLAS_FLOAT s)
16 #ifdef CREATE_CBLAS
17     {
18         CXXBLAS_FLOAT *x = reinterpret_cast<CXXBLAS_FLOAT *>(_x);
19         CXXBLAS_FLOAT *y = reinterpret_cast<CXXBLAS_FLOAT *>(_y);
20 
21         cxxblas::rot<CBLAS_INT,
22                      CXXBLAS_FLOAT,
23                      CXXBLAS_FLOAT,
24                      CXXBLAS_FLOAT>(n, x, incX, y, incY, c, s);
25     }
26 #else
27     ;
28 #endif // CREATE_CBLAS
29 
30 #ifdef CREATE_BLAS
31     void
32     BLAS_NAME(CBLAS_INT *_n,
33               CBLAS_FLOAT *x, CBLAS_INT *_incX,
34               CBLAS_FLOAT *y, CBLAS_INT *_incY,
35               CBLAS_FLOAT *_c, CBLAS_FLOAT *_s)
36     {
37 
38         CBLAS_INT n    = *_n;
39         CBLAS_INT incX = *_incX;
40         CBLAS_INT incY = *_incY;
41         CBLAS_FLOAT c  = *_c; 
42         CBLAS_FLOAT s  = *_s; 
43 
44         // the blas interface calls the cblas interface
45         // so any blas-test will also test the cblas-interface
46         CBLAS_NAME(n, x, incX, y, incY, c, s);
47     }
48 #endif // CREATE_BLAS
49 
50 // extern "C"