Files
harmonica/src/utils/math.hpp
2026-03-20 10:42:25 +03:00

24 lines
579 B
C++

#pragma once
#include <type_traits>
#include <cmath>
namespace hr
{
template<typename T>
T log10(T value)
{
if constexpr (std::is_same_v<T, float>)
return std::log10f(value);
else if constexpr (std::is_same_v<T, double>)
return std::log10(value);
else if constexpr (std::is_same_v<T, long double>)
return std::log10l(value);
else
{
static_assert(std::is_same_v<T, float> || std::is_same_v<T, double> || std::is_same_v<T, long double>, "Unsupported type for log10");
return std::log10(value); // fallback
}
}
}