28divide(
const NumeratorIterT& numerator_begin,
29 const NumeratorIterT& numerator_end,
30 const DenominatorIterT& denominator_begin,
31 const small_numT small_num)
33 small_numT small_value = *std::max_element(numerator_begin, numerator_end) * small_num;
34 small_value = (small_value > 0) ? small_value : 0;
36 NumeratorIterT numerator_iter = numerator_begin;
37 DenominatorIterT denominator_iter = denominator_begin;
38 while (numerator_iter != numerator_end)
40 if (std::fabs(*denominator_iter) <= small_value && std::fabs(*numerator_iter) <= small_value)
41 (*numerator_iter) = 0;
43 (*numerator_iter) /= (*denominator_iter);
void divide(const NumeratorIterT &numerator_begin, const NumeratorIterT &numerator_end, const DenominatorIterT &denominator_begin, const small_numT small_num)
division of two ranges, 0/0 = 0
Definition divide.inl:28