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 KlauserTEST_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