36 #ifndef DSPFILTERS_LAYOUT_H
37 #define DSPFILTERS_LAYOUT_H
40 #include "MathSupplement.h"
62 , m_maxPoles (maxPoles)
70 m_maxPoles = other.m_maxPoles;
71 m_pair = other.m_pair;
79 int getNumPoles ()
const
84 int getMaxPoles ()
const
89 void add (
const complex_t& pole,
const complex_t& zero)
91 assert (!(m_numPoles&1));
92 assert (!Dsp::is_nan (pole));
97 void addPoleZeroConjugatePairs (
const complex_t pole,
100 assert (!(m_numPoles&1));
101 assert (!Dsp::is_nan (pole));
103 pole, zero, std::conj (pole), std::conj (zero));
109 assert (!(m_numPoles&1));
110 assert (poles.isMatchedPair ());
111 assert (zeros.isMatchedPair ());
112 m_pair[m_numPoles/2] =
PoleZeroPair (poles.first, zeros.first,
113 poles.second, zeros.second);
119 assert (pairIndex >= 0 && pairIndex < (m_numPoles+1)/2);
120 return m_pair[pairIndex];
125 return getPair (pairIndex);
128 double getNormalW ()
const
133 double getNormalGain ()
const
138 void setNormal (
double w,
double g)
155 template <
int MaxPoles>