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 >;*/ \
31template class tbci_memalloc_cache< TYPE >
32//template <> tbci_memalloc< TYPE >& tbci_s_allocator (DUMMY2(TYPE) )
33
34INST_TBCI_MEMALLOC(CPLX__ complex<double>);
35INST_TBCI_MEMALLOC(CPLX__ complex<double>*);
36INST_TBCI_MEMALLOC(CPLX__ complex<float>);
37INST_TBCI_MEMALLOC(CPLX__ complex<float>*);
38
40#endif
41
42/* gcc-3.2 hack */
43#ifdef HAVE_GCC320_MISS_CPLXFN_BUG
44template class std::complex<float>;
45template class std::complex<double>;
46template std::complex<double> std::log<double> (const std::complex<double>&);
47template std::complex<double> std::sqrt<double>(const std::complex<double>&);
48template std::complex<double> std::exp<double> (const std::complex<double>&);
49template std::complex<double> std::sin<double> (const std::complex<double>&);
50template std::complex<double> std::cos<double> (const std::complex<double>&);
51template std::complex<double> std::sinh<double>(const std::complex<double>&);
52template std::complex<double> std::cosh<double>(const std::complex<double>&);
53template double std::abs<double> (const std::complex<double>&);
54template double std::arg<double> (const std::complex<double>&);
55#ifdef HAVE_GCC34_LIBSTDCXX_REAL_IMAG_REF
56template const double& std::real<double>(const std::complex<double>&);
57template const double& std::imag<double>(const std::complex<double>&);
58template double& std::real<double>(std::complex<double>&);
59template double& std::imag<double>(std::complex<double>&);
60#else
61template double std::real<double>(const std::complex<double>&);
62template double std::imag<double>(const std::complex<double>&);
63#endif
64template std::complex<double> std::conj<double> (const std::complex<double>&);
65template std::complex<double> std::polar<double>(const double&, const double&);
66#ifndef MISS_STDCPLX_TAN_BUG
67template std::complex<double> std::tan<double> (const std::complex<double>&);
68template std::complex<double> std::tanh<double>(const std::complex<double>&);
69#endif
70#ifndef HAVE_MISS_STDCPLX_LOG10_BUG
71template std::complex<double> std::log10<double>(const std::complex<double>&);
72#endif
73#endif
#define NAMESPACE_END
Definition basics.h:323
#define NAMESPACE_TBCI
Definition basics.h:317
int imag(const int d)
Definition basics.h:1070
unsigned abs(const unsigned a)
Definition basics.h:1258
int conj(const int arg)
conj for elementary types
Definition basics.h:1057
int real(const int d)
Definition basics.h:1065
double sqrt(const int a)
Definition basics.h:1218
#define complex