summaryrefslogtreecommitdiff
path: root/asl/base/float.hpp
blob: 2de2e0cafe1dd8a4445d8dfa0944f9d385147d8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#pragma once

#include "asl/base/meta.hpp"

namespace asl
{

template<is_floating_point T> constexpr T infinity() { return __builtin_inf(); }

template<is_floating_point T> constexpr T nan() { return static_cast<T>(__builtin_nanf("")); }

template<is_floating_point T> constexpr bool is_infinity(T f) { return __builtin_isinf(f); }

template<is_floating_point T> constexpr bool is_nan(T f) { return __builtin_isnan(f); }

} // namespace asl