X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=ETL%2Ftrunk%2FETL%2F_fixed.h;h=78ed0cdba8e674e29f7796d5049ba5e16df56ae6;hb=7b9a27e62a061b8711153b5a1c7ddd59b6a37075;hp=7e8a59bf2166f8e7330a76ee7ee8e21fc5330e6f;hpb=cee5940bae97612105db8b7e1ffcf513f9d9150c;p=synfig.git diff --git a/ETL/trunk/ETL/_fixed.h b/ETL/trunk/ETL/_fixed.h index 7e8a59b..78ed0cd 100644 --- a/ETL/trunk/ETL/_fixed.h +++ b/ETL/trunk/ETL/_fixed.h @@ -1,7 +1,7 @@ /*! ======================================================================== ** Extended Template and Library ** Fixed-Point Math Class Implementation -** $Id: _fixed.h,v 1.1.1.1 2005/01/04 01:31:47 darco Exp $ +** $Id$ ** ** Copyright (c) 2002 Robert B. Quattlebaum Jr. ** @@ -33,6 +33,10 @@ /* === M A C R O S ========================================================= */ +// the "+0.5" code was commented out - maybe to make thing run faster? +// it can be re-enabled by uncommenting this next line: +// #define ROUND_TO_NEAREST_INTEGER + #ifndef ETL_FIXED_TYPE # define ETL_FIXED_TYPE int #endif @@ -177,16 +181,25 @@ fixed_base::fixed_base(const _fixed &x):_data(x._data) {} template -fixed_base::fixed_base(const float &f):_data(static_cast(f*_ONE()/*+0.5f*/)) -{} +fixed_base::fixed_base(const float &f):_data(static_cast(f*_ONE() +#ifdef ROUND_TO_NEAREST_INTEGER + +0.5f +#endif + )) {} template -fixed_base::fixed_base(const double &f):_data(static_cast(f*_ONE()/*+0.5*/)) -{} +fixed_base::fixed_base(const double &f):_data(static_cast(f*_ONE() +#ifdef ROUND_TO_NEAREST_INTEGER + +0.5 +#endif + )) {} template -fixed_base::fixed_base(const long double &f):_data(static_cast(f*_ONE()/*+0.5*/)) -{} +fixed_base::fixed_base(const long double &f):_data(static_cast(f*_ONE() +#ifdef ROUND_TO_NEAREST_INTEGER + +0.5 +#endif + )) {} template fixed_base::fixed_base(const int &i):_data(i<