X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=flower%2Finclude%2Freal.hh;h=d7208b4e560847edbb86687a022933476ad92a14;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=2e8b160a22d02e71f0cbdc8c07e8515d07ef273d;hpb=1a66290a98e7de8d6d41485b5b71a9f7e1fe35c7;p=lilypond.git diff --git a/flower/include/real.hh b/flower/include/real.hh index 2e8b160a22..d7208b4e56 100644 --- a/flower/include/real.hh +++ b/flower/include/real.hh @@ -1,28 +1,58 @@ /* - real.hh -- declare Real + This file is part of LilyPond, the GNU music typesetter. - source file of the Flower Library + Copyright (C) 1997--2015 Han-Wen Nienhuys - (c) 1997 Han-Wen Nienhuys -*/ + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . +*/ #ifndef REAL_HH #define REAL_HH - -#include -#include -#include -#include +#include +#include +#include +using namespace std; typedef double Real; -const Real infinity_f = HUGE_VAL; +extern const Real infinity_f; + +/* namespace std { */ + +template inline T abs (T x) +{ + return x > 0 ? x : -x; +} + +/* } namespace std */ inline Real -distance (Real x,Real y) +distance (Real x, Real y) +{ + return abs (x - y); +} + +template inline int sign (T x) +{ + if (x) + return x > T (0) ? 1 : -1; + return 0; +} + +template inline T sqr (T x) { - return abs (x-y); + return x * x; } #endif