40 #include "MathSupplement.h"
55 : complex_pair_t (c1, 0.)
57 if (!isReal())
throw std::invalid_argument(
"A single complex number needs to be real.");
62 : complex_pair_t (c1, c2)
66 bool isConjugate ()
const
68 return second == std::conj (first);
73 return first.imag() == 0 && second.imag() == 0;
82 if (first.imag() != 0)
83 return second == std::conj (first);
85 return second.imag () == 0 &&
86 second.real () != 0 &&
92 return Iir::is_nan (first) || Iir::is_nan (second);
109 : poles (p), zeros (z)
115 const complex_t& p2,
const complex_t& z2)
121 bool isSinglePole ()
const
123 return poles.second == 0. && zeros.second == 0.;
128 return poles.is_nan() || zeros.is_nan();