MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ backward_difference_weights()

MAYAFLUX_API std::vector< double > MayaFlux::Kinesis::Discrete::backward_difference_weights ( size_t  order)

Weights of the backward difference of a given order.

Parameters
orderDifference order, 1 is velocity, 2 acceleration
Returns
order + 1 weights, (-1)^k * C(order, k), applied to a newest-first window. Divide the weighted sum by dt^order for a derivative.

Definition at line 175 of file Coefficients.cpp.

176{
177 std::vector<double> weights(order + 1);
178 double binomial = 1.0;
179 for (size_t k = 0; k <= order; ++k) {
180 if (k > 0)
181 binomial = binomial * static_cast<double>(order - k + 1) / static_cast<double>(k);
182 weights.at(k) = (k % 2 == 0) ? binomial : -binomial;
183 }
184 return weights;
185}