Typedefs | |
| using | LossSearchVector = std::array<double, kLossSearchDimension> |
Functions | |
| template<std::size_t Poles, std::size_t Shelves, typename Target> | |
| LossShape< Poles, Shelves > | fit_loss_shape (Target &&target) |
| Generic fit of Poles one-poles and Shelves first-order shelves to a dimensionless target, minimizing the WORST error in dB over log-spaced points. | |
| using pulp::signal::chardelay::detail::LossSearchVector = std::array<double, kLossSearchDimension> |
|
inline |
Generic fit of Poles one-poles and Shelves first-order shelves to a dimensionless target, minimizing the WORST error in dB over log-spaced points.
Minimax rather than least squares because the acceptance criterion is a bound on the worst error at any frequency, and an L2 fit happily trades one large error for many small ones — exactly the wrong bargain. (A tiny L2 term breaks ties between parameter sets sharing a worst point.)