36 index_gap_.resize(coeff_.size() - 1, 0);
37 auto it = coeff_.begin();
38 auto it_previous = coeff_.begin();
41 for (; it != coeff_.end(); ++it, ++it_previous) {
42 const uint32_t& order = it->first;
43 const uint32_t& order_pre = it_previous->first;
44 uint32_t gap = order - order_pre;
45 index_gap_[idx] = gap;
47 power_cache_[gap] = 0.0;
52 for (
auto& item : power_cache_) {
54 for (
size_t i = 0; i < item.first - 1; ++i) {
59 auto r_it = coeff_.rbegin();
60 double sum = r_it->second;
61 auto it_gap = index_gap_.rbegin();
62 while (it_gap != index_gap_.rend()) {
64 sum = power_cache_[*it_gap] * sum + r_it->second;