31#ifndef ETL_GCD_INCLUDED
32#define ETL_GCD_INCLUDED
37#include "static_assert.h"
45 template <
intmax_t Value1,
intmax_t Value2>
51 template <
intmax_t Value1>
65 gcd(
T a,
T b) ETL_NOEXCEPT
69 if ((a == 0 ||
b == 0))
92 gcd(
T a,
T b) ETL_NOEXCEPT
98 utype ua = etl::absolute_unsigned(a);
99 utype ub = etl::absolute_unsigned(
b);
101 return static_cast<T>(gcd(
ua,
ub));
105 #if ETL_HAS_INITIALIZER_LIST
111 template<
typename T,
typename...
TRest>
118 for (
T value : {
rest...})
120 result = gcd(result, value);
138 template<
typename T,
typename...
TRest>
enable_if
Definition type_traits_generator.h:1254
is_integral
Definition type_traits_generator.h:1064
make_unsigned
Definition type_traits_generator.h:1244
bitset_ext
Definition absolute.h:39
ETL_NODISCARD ETL_CONSTEXPR14 T round_half_even_unscaled(T value) ETL_NOEXCEPT
Definition scaled_rounding.h:315