TBCI Numerical high perf. C++ Library  2.8.0
stdcomplexinst.cc
Go to the documentation of this file.
1 
4 /* $Id: stdcomplexinst.cc,v 1.1.2.13 2022/11/03 23:51:23 garloff Exp $ */
5 
6 #if defined(__GNUC__) && __GNUC__ == 2
7 # define MINLINE /* extern inline */
8 #endif
9 
10 #include "tbci/std_cplx.h"
11 
12 #ifndef NUM
13 #define NUM double
14 #endif
15 
16 #define TEMPLATE template
17 
18 //NAMESPACE_TBCI
19 
20 #define T NUM
21 #define U NUM
22 #include "std_cplx_inst.h"
23 
24 //NAMESPACE_END
25 #ifdef MALLOC_CACHE
26 #include "tbci/malloc_cache.h"
28 
29 # define INST_TBCI_MEMALLOC(TYPE) \
30 /*template class tbci_memalloc< TYPE >;*/ \
31 template class tbci_memalloc_cache< TYPE >
32 //template <> tbci_memalloc< TYPE >& tbci_s_allocator (DUMMY2(TYPE) )
33 
34 INST_TBCI_MEMALLOC(CPLX__ complex<double>);
35 INST_TBCI_MEMALLOC(CPLX__ complex<double>*);
36 INST_TBCI_MEMALLOC(CPLX__ complex<float>);
37 INST_TBCI_MEMALLOC(CPLX__ complex<float>*);
38 
40 #endif
41 
42 /* gcc-3.2 hack */
43 #ifdef HAVE_GCC320_MISS_CPLXFN_BUG
44 template class std::complex<float>;
45 template class std::complex<double>;
46 template std::complex<double> std::log<double> (const std::complex<double>&);
47 template std::complex<double> std::sqrt<double>(const std::complex<double>&);
48 template std::complex<double> std::exp<double> (const std::complex<double>&);
49 template std::complex<double> std::sin<double> (const std::complex<double>&);
50 template std::complex<double> std::cos<double> (const std::complex<double>&);
51 template std::complex<double> std::sinh<double>(const std::complex<double>&);
52 template std::complex<double> std::cosh<double>(const std::complex<double>&);
53 template double std::abs<double> (const std::complex<double>&);
54 template double std::arg<double> (const std::complex<double>&);
55 #ifdef HAVE_GCC34_LIBSTDCXX_REAL_IMAG_REF
56 template const double& std::real<double>(const std::complex<double>&);
57 template const double& std::imag<double>(const std::complex<double>&);
58 template double& std::real<double>(std::complex<double>&);
59 template double& std::imag<double>(std::complex<double>&);
60 #else
61 template double std::real<double>(const std::complex<double>&);
62 template double std::imag<double>(const std::complex<double>&);
63 #endif
64 template std::complex<double> std::conj<double> (const std::complex<double>&);
65 template std::complex<double> std::polar<double>(const double&, const double&);
66 #ifndef MISS_STDCPLX_TAN_BUG
67 template std::complex<double> std::tan<double> (const std::complex<double>&);
68 template std::complex<double> std::tanh<double>(const std::complex<double>&);
69 #endif
70 #ifndef HAVE_MISS_STDCPLX_LOG10_BUG
71 template std::complex<double> std::log10<double>(const std::complex<double>&);
72 #endif
73 #endif
#define NAMESPACE_TBCI
Definition: basics.h:317
#define CPLX__
Definition: basics.h:341
#define NAMESPACE_END
Definition: basics.h:323
Definition: f2c.h:33