8 template <
typename Number = DefaultNumber>
9 bool are_equal(
const Number& a,
const Number& b,
const Number& epsilon = std::numeric_limits<Number>::epsilon()) {
10 return std::abs(a - b) <= epsilon || std::abs(a - b) <= std::max(std::abs(a), std::abs(b)) * epsilon;
25 template <
typename Number,
typename ExponentType>
26 Number
binpow(Number x, ExponentType n) {
27 if constexpr (std::is_signed_v<ExponentType>) {
bool are_equal(const Number &a, const Number &b, const Number &epsilon=std::numeric_limits< Number >::epsilon())
Definition numeric.h:9
Number binpow(Number x, ExponentType n)
Computes the power of a number using binary exponentiation.
Definition numeric.h:26