36 #ifndef IIR1_MATHSUPPLEMENT_H
37 #define IIR1_MATHSUPPLEMENT_H
45 template class IIR_EXPORT std::complex<double>;
46 template class IIR_EXPORT std::complex<float>;
51 const double doublePi =3.1415926535897932384626433832795028841971;
52 const double doublePi_2 =1.5707963267948966192313216916397514420986;
53 const double doubleLn2 =0.69314718055994530941723212145818;
54 const double doubleLn10 =2.3025850929940456840179914546844;
56 typedef std::complex<double> complex_t;
57 typedef std::pair<complex_t, complex_t> complex_pair_t;
59 inline const complex_t infinity()
61 return complex_t (std::numeric_limits<double>::infinity());
64 template <
typename Ty,
typename To>
65 inline std::complex<Ty> addmul (
const std::complex<Ty>& c,
67 const std::complex<To>& c1)
69 return std::complex <Ty> (
70 c.real() + v * c1.real(), c.imag() + v * c1.imag());
73 template <
typename Ty>
74 inline Ty asinh (Ty x)
76 return log (x + std::sqrt (x * x + 1 ));
79 template <
typename Ty>
80 inline bool is_nan (Ty v)
86 inline bool is_nan<complex_t> (complex_t v)
88 return Iir::is_nan (v.real()) || Iir::is_nan (v.imag());
Definition: Biquad.cpp:40