mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-22 05:16:10 +01:00
Move nextafter polyfill to polyfills.hpp
This commit is contained in:
parent
9a1e73568c
commit
bfd9f0f5a6
@ -31,4 +31,12 @@ namespace Catch {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined( CATCH_CONFIG_GLOBAL_NEXTAFTER )
|
||||||
|
float nextafter( float x, float y ) { return std::nextafter( x, y ); }
|
||||||
|
double nextafter( double x, double y ) { return std::nextafter( x, y ); }
|
||||||
|
#else
|
||||||
|
float nextafter( float x, float y ) { return ::nextafterf( x, y ); }
|
||||||
|
double nextafter( double x, double y ) { return ::nextafter( x, y ); }
|
||||||
|
#endif
|
||||||
|
|
||||||
} // end namespace Catch
|
} // end namespace Catch
|
||||||
|
@ -9,8 +9,13 @@
|
|||||||
#define CATCH_POLYFILLS_HPP_INCLUDED
|
#define CATCH_POLYFILLS_HPP_INCLUDED
|
||||||
|
|
||||||
namespace Catch {
|
namespace Catch {
|
||||||
|
|
||||||
bool isnan(float f);
|
bool isnan(float f);
|
||||||
bool isnan(double d);
|
bool isnan(double d);
|
||||||
|
|
||||||
|
float nextafter(float x, float y);
|
||||||
|
double nextafter(double x, double y);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // CATCH_POLYFILLS_HPP_INCLUDED
|
#endif // CATCH_POLYFILLS_HPP_INCLUDED
|
||||||
|
@ -38,26 +38,11 @@ namespace {
|
|||||||
return ulpDist <= maxUlpDiff;
|
return ulpDist <= maxUlpDiff;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CATCH_CONFIG_GLOBAL_NEXTAFTER)
|
|
||||||
|
|
||||||
float nextafter(float x, float y) {
|
|
||||||
return ::nextafterf(x, y);
|
|
||||||
}
|
|
||||||
|
|
||||||
double nextafter(double x, double y) {
|
|
||||||
return ::nextafter(x, y);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // ^^^ CATCH_CONFIG_GLOBAL_NEXTAFTER ^^^
|
|
||||||
|
|
||||||
template <typename FP>
|
template <typename FP>
|
||||||
FP step(FP start, FP direction, uint64_t steps) {
|
FP step(FP start, FP direction, uint64_t steps) {
|
||||||
for (uint64_t i = 0; i < steps; ++i) {
|
for (uint64_t i = 0; i < steps; ++i) {
|
||||||
#if defined(CATCH_CONFIG_GLOBAL_NEXTAFTER)
|
|
||||||
start = Catch::nextafter(start, direction);
|
start = Catch::nextafter(start, direction);
|
||||||
#else
|
|
||||||
start = std::nextafter(start, direction);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user