From: dooglus Date: Wed, 10 Oct 2007 01:59:14 +0000 (+0000) Subject: Conditionally compile in the '+0.5' code to make fixed point numbers more accurate... X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=8d078f7fbf638f6d847eb67bcea2511287361e40;p=synfig.git Conditionally compile in the '+0.5' code to make fixed point numbers more accurate. Currently disabled. git-svn-id: http://svn.voria.com/code@871 1f10aa63-cdf2-0310-b900-c93c546f37ac --- diff --git a/ETL/trunk/ETL/_fixed.h b/ETL/trunk/ETL/_fixed.h index 9233f21..78ed0cd 100644 --- a/ETL/trunk/ETL/_fixed.h +++ b/ETL/trunk/ETL/_fixed.h @@ -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<