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 CBLAS_FLOAT
12 CBLAS_NAME(CBLAS_INT n, const CBLAS_FLOAT *_x, CBLAS_INT incX)
13 #ifdef CREATE_CBLAS
14 {
15 const CXXBLAS_FLOAT *x = reinterpret_cast<const CXXBLAS_FLOAT *>(_x);
16
17 CBLAS_FLOAT result;
18 cxxblas::nrm2<CBLAS_INT,
19 CXXBLAS_FLOAT,
20 CBLAS_FLOAT>(n, x, incX, result);
21 return result;
22 }
23 #else
24 ;
25 #endif // CREATE_CBLAS
26
27 #ifdef CREATE_BLAS
28 CBLAS_FLOAT
29 BLAS_NAME(CBLAS_INT *_n, const CBLAS_FLOAT *x, CBLAS_INT *_incX)
30 {
31
32 CBLAS_INT n = *_n;
33 CBLAS_INT incX = *_incX;
34
35 // the blas interface calls the cblas interface
36 // so any blas-test will also test the cblas-interface
37 return CBLAS_NAME(n, x, incX);
38 }
39 #endif // CREATE_BLAS
40
41 } // extern "C"
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 CBLAS_FLOAT
12 CBLAS_NAME(CBLAS_INT n, const CBLAS_FLOAT *_x, CBLAS_INT incX)
13 #ifdef CREATE_CBLAS
14 {
15 const CXXBLAS_FLOAT *x = reinterpret_cast<const CXXBLAS_FLOAT *>(_x);
16
17 CBLAS_FLOAT result;
18 cxxblas::nrm2<CBLAS_INT,
19 CXXBLAS_FLOAT,
20 CBLAS_FLOAT>(n, x, incX, result);
21 return result;
22 }
23 #else
24 ;
25 #endif // CREATE_CBLAS
26
27 #ifdef CREATE_BLAS
28 CBLAS_FLOAT
29 BLAS_NAME(CBLAS_INT *_n, const CBLAS_FLOAT *x, CBLAS_INT *_incX)
30 {
31
32 CBLAS_INT n = *_n;
33 CBLAS_INT incX = *_incX;
34
35 // the blas interface calls the cblas interface
36 // so any blas-test will also test the cblas-interface
37 return CBLAS_NAME(n, x, incX);
38 }
39 #endif // CREATE_BLAS
40
41 } // extern "C"