// -*- C++ -*- #include #include "rls.hpp" #include namespace gr { namespace digitalhf { filter_update::sptr rls::make(float delta, float lambda) { return filter_update::sptr(new rls(delta, lambda)); } rls::rls(float delta, float lambda) : _delta(delta) , _lambda(lambda) , _gain() , _inv_corr() , _tmp() { } rls::~rls() { } void rls::resize(size_t n) { if (_gain.size() == n && _inv_corr.size() == n*n) return; _gain.resize(n); _inv_corr.resize(n*n); _pu.resize(n); _tmp.resize(n); reset(); } void rls::reset() { size_t const n = _gain.size(); std::fill_n(_gain.begin(), n, 0); std::fill_n(_inv_corr.begin(), n*n, 0); for (size_t i=0; i 0); unsigned const n = end - beg; resize(n); for (unsigned i=0; i const& p) { _delta = p.at("delta"); _lambda = p.at("lambda"); } } // namespace digitalhf } // namespace gr