4#ifndef TETL_CMATH_ISINF_HPP
5#define TETL_CMATH_ISINF_HPP
7#include <etl/_config/all.hpp>
9#include <etl/_concepts/integral.hpp>
10#include <etl/_limits/numeric_limits.hpp>
11#include <etl/_type_traits/is_constant_evaluated.hpp>
17inline constexpr struct isinf {
18 template <
typename Float>
19 [[nodiscard]]
constexpr auto operator()(Float arg)
const ->
bool
21#if __has_builtin(__builtin_isinf)
22 return __builtin_isinf(arg) != 0;
24 return arg == etl::numeric_limits<Float>::infinity();
36 return etl::detail::isinf(arg);
42 return etl::detail::isinf(arg);
48 return etl::detail::isinf(arg);
52template <
etl::integral Int>
53[[nodiscard]]
constexpr auto isinf(Int arg) ->
bool
55 return etl::detail::isinf(
static_cast<
double>(arg));
constexpr auto isinf(double arg) -> bool
Definition isinf.hpp:40
constexpr auto isinf(Int arg) -> bool
Definition isinf.hpp:53
constexpr auto isinf(float arg) -> bool
Determines if the given floating point number arg is a positive or negative infinity.
Definition isinf.hpp:34
constexpr auto isinf(long double arg) -> bool
Definition isinf.hpp:46
Definition adjacent_find.hpp:9