1#ifndef QUICKSTATS_UTILS_HPP
2#define QUICKSTATS_UTILS_HPP
19template<
typename Value_>
20using I = std::remove_cv_t<std::remove_reference_t<Value_> >;
22template<
typename Value_>
23Value_ interpolate(
const Value_ left,
const Value_ right,
const Value_ right_frac) {
24 if (std::isinf(left)) {
32 return left + (right - left) * right_frac;
36template<
typename Output_>
37bool check_zeroed(
const std::size_t len,
const Output_*
const ptr) {
38 for (std::size_t i = 0; i < len; ++i) {
46template<
typename Value_>
47constexpr Value_ inf_if_available_else_max() {
48 if constexpr(std::numeric_limits<Value_>::has_infinity) {
49 return std::numeric_limits<Value_>::infinity();
51 return std::numeric_limits<Value_>::max();
62template<
typename Value_>
64 if constexpr(std::numeric_limits<Value_>::has_quiet_NaN) {
65 return std::numeric_limits<Value_>::quiet_NaN();
Quickly compute simple statistics.
Definition mad.hpp:15
constexpr Value_ nan_if_available_else_zero()
Definition utils.hpp:63