LowpassOracle class

Oracle for FIR lowpass filter design.

This example is taken from Almir Mutapcic in 2006:

min   γ
s.t.  L²(ω) ≤ R(ω) ≤ U²(ω), ∀ ω ∈ [0, π]
      R(ω) > 0, ∀ ω ∈ [0, π]

Constructors, destructors, conversion operators

LowpassOracle(size_t N, double Lpsq, double Upsq, double wpass, double wstop)
Construct a new lowpass oracle object.

Public functions

auto assess_feas(const Vec& x, const double& Spsq) -> ParallelCut * -> auto
auto assess_optim(const Vec& x, double& Spsq) -> std::tuple< ParallelCut, bool > -> auto
The assess_optim function is a member function of the LowpassOracle class. It takes a Vec object x and a reference to a double variable Spsq as input parameters.
auto operator()(const Vec& x, double& Spsq) -> std::tuple< ParallelCut, bool > -> auto

Function documentation

LowpassOracle::LowpassOracle(size_t N, double Lpsq, double Upsq, double wpass, double wstop)

Construct a new lowpass oracle object.

Parameters
in Number of FIR coefficients (including zeroth)
Lpsq in Square of lower passband bound (L^2)
Upsq in Square of upper passband bound (U^2)
wpass in Passband edge frequency
wstop in Stopband edge frequency

The constructor of the LowpassOracle class. It initializes an instance of the LowpassOracle class with the given parameters.

auto LowpassOracle::assess_feas(const Vec& x, const double& Spsq) -> ParallelCut *

Parameters
in
Spsq in

auto LowpassOracle::assess_optim(const Vec& x, double& Spsq) -> std::tuple< ParallelCut, bool >

The assess_optim function is a member function of the LowpassOracle class. It takes a Vec object x and a reference to a double variable Spsq as input parameters.

Parameters
in
Spsq in/out

auto LowpassOracle::operator()(const Vec& x, double& Spsq) -> std::tuple< ParallelCut, bool >

Returns auto