xref: /llvm-project/libcxx/test/support/floating_pointer_helpers.h (revision 5aacf93a8968b1ae83382ed0ce6de8279b0cd753)
1*5aacf93aSNikolas Klauser //===----------------------------------------------------------------------===//
2*5aacf93aSNikolas Klauser //
3*5aacf93aSNikolas Klauser // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*5aacf93aSNikolas Klauser // See https://llvm.org/LICENSE.txt for license information.
5*5aacf93aSNikolas Klauser // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*5aacf93aSNikolas Klauser //
7*5aacf93aSNikolas Klauser //===----------------------------------------------------------------------===//
8*5aacf93aSNikolas Klauser 
9*5aacf93aSNikolas Klauser #ifndef TEST_SUPPORT_FLOATING_POINT_HELPERS_H
10*5aacf93aSNikolas Klauser #define TEST_SUPPORT_FLOATING_POINT_HELPERS_H
11*5aacf93aSNikolas Klauser 
12*5aacf93aSNikolas Klauser #include <limits>
13*5aacf93aSNikolas Klauser 
14*5aacf93aSNikolas Klauser #include "test_macros.h"
15*5aacf93aSNikolas Klauser 
16*5aacf93aSNikolas Klauser template <class T>
is_close(T v,T comp)17*5aacf93aSNikolas Klauser TEST_CONSTEXPR_CXX20 bool is_close(T v, T comp) {
18*5aacf93aSNikolas Klauser   return v <= comp + std::numeric_limits<T>::epsilon() && v >= comp - std::numeric_limits<T>::epsilon();
19*5aacf93aSNikolas Klauser }
20*5aacf93aSNikolas Klauser 
21*5aacf93aSNikolas Klauser #endif // TEST_SUPPORT_FLOATING_POINT_HELPERS_H
22