From 474a808f7987462a3a896f7a6a8459df7e2e4dbc Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Tue, 8 May 2012 16:39:58 +1000 Subject: [PATCH] Add exactly_zero call --- maths.hpp | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/maths.hpp b/maths.hpp index 28b2d048..240be79c 100644 --- a/maths.hpp +++ b/maths.hpp @@ -88,11 +88,28 @@ almost_equal (const Ta &a, const Tb &b) { return a == b; } +// Useful for explictly ignore equality warnings +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wfloat-equal" +template +bool +exactly_equal (const T &a, const T &b) + { return a == b; } +#pragma GCC diagnostic pop + + template bool almost_zero (T a) { return almost_equal (a, 0); } + +template +bool +exactly_zero (T a) + { return exactly_equal (a, static_cast (0)); } + + const double PI = 3.141592653589793238462643; inline double @@ -116,15 +133,6 @@ bool almost_equal (const double &a, const double &b); -// Useful for explictly ignore equality warnings -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wfloat-equal" -template -bool -exactly_equal (const T &a, const T &b) - { return a == b; } -#pragma GCC diagnostic pop - /// Variadic minimum template const T&