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 #ifndef COMPLEX_FLOAT2
12 typedef CBLAS_FLOAT CBLAS_ALPHA;
13 #else
14 typedef const CBLAS_FLOAT * CBLAS_ALPHA;
15 #endif
16
17 void
18 CBLAS_NAME(CBLAS_INT n, CBLAS_ALPHA _alpha,
19 CBLAS_FLOAT *_x, CBLAS_INT incX)
20 #ifdef CREATE_CBLAS
21 {
22 CXXBLAS_FLOAT *x = reinterpret_cast<CXXBLAS_FLOAT *>(_x);
23
24
25 # ifndef COMPLEX_FLOAT2
26 CXXBLAS_FLOAT alpha = _alpha;
27 # else
28 CXXBLAS_FLOAT alpha(_alpha[0], _alpha[1]);
29 # endif
30 cxxblas::scal(n, alpha, x, incX);
31 }
32 #else
33 ;
34 #endif // CREATE_CBLAS
35
36 #ifdef CREATE_BLAS
37 void
38 BLAS_NAME(const CBLAS_INT *_n, const CBLAS_FLOAT *_alpha,
39 CBLAS_FLOAT *x, const CBLAS_INT *_incX)
40 {
41
42 CBLAS_INT n = *_n;
43 CBLAS_INT incX = *_incX;
44
45 # ifndef COMPLEX_FLOAT2
46 CBLAS_ALPHA alpha = *_alpha;
47 # else
48 CBLAS_ALPHA alpha = _alpha;
49 # endif
50
51 // the blas interface calls the cblas interface
52 // so any blas-test will also test the cblas-interface
53 CBLAS_NAME(n, alpha, x, incX);
54 }
55 #endif // CREATE_BLAS
56
57 } // 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 #ifndef COMPLEX_FLOAT2
12 typedef CBLAS_FLOAT CBLAS_ALPHA;
13 #else
14 typedef const CBLAS_FLOAT * CBLAS_ALPHA;
15 #endif
16
17 void
18 CBLAS_NAME(CBLAS_INT n, CBLAS_ALPHA _alpha,
19 CBLAS_FLOAT *_x, CBLAS_INT incX)
20 #ifdef CREATE_CBLAS
21 {
22 CXXBLAS_FLOAT *x = reinterpret_cast<CXXBLAS_FLOAT *>(_x);
23
24
25 # ifndef COMPLEX_FLOAT2
26 CXXBLAS_FLOAT alpha = _alpha;
27 # else
28 CXXBLAS_FLOAT alpha(_alpha[0], _alpha[1]);
29 # endif
30 cxxblas::scal(n, alpha, x, incX);
31 }
32 #else
33 ;
34 #endif // CREATE_CBLAS
35
36 #ifdef CREATE_BLAS
37 void
38 BLAS_NAME(const CBLAS_INT *_n, const CBLAS_FLOAT *_alpha,
39 CBLAS_FLOAT *x, const CBLAS_INT *_incX)
40 {
41
42 CBLAS_INT n = *_n;
43 CBLAS_INT incX = *_incX;
44
45 # ifndef COMPLEX_FLOAT2
46 CBLAS_ALPHA alpha = *_alpha;
47 # else
48 CBLAS_ALPHA alpha = _alpha;
49 # endif
50
51 // the blas interface calls the cblas interface
52 // so any blas-test will also test the cblas-interface
53 CBLAS_NAME(n, alpha, x, incX);
54 }
55 #endif // CREATE_BLAS
56
57 } // extern "C"