[PATCH 02/27] Input: Add round_towards_zero helper
Matt Turner
mattst88 at gmail.com
Fri Jun 3 09:38:16 PDT 2011
On Fri, Jun 3, 2011 at 10:59 AM, Daniel Stone <daniel at fooishbar.org> wrote:
> lrint() exists to round _away_ from zero, but there's no equivalent for
> rounding towards zero, aside from tediously calling fesetenv(), which
> isn't hugely portable anyway, then lround(). Great.
>
> Signed-off-by: Daniel Stone <daniel at fooishbar.org>
> ---
> dix/inpututils.c | 9 +++++++++
> include/input.h | 2 ++
> 2 files changed, 11 insertions(+), 0 deletions(-)
>
> diff --git a/dix/inpututils.c b/dix/inpututils.c
> index 49e1758..bf8d093 100644
> --- a/dix/inpututils.c
> +++ b/dix/inpututils.c
> @@ -584,3 +584,12 @@ void verify_internal_event(const InternalEvent *ev)
> FatalError("Wrong event type %d. Aborting server\n", ev->any.header);
> }
> }
> +
> +double
> +round_towards_zero(double val)
> +{
> + if (val >= 0.0)
> + return floor(val);
> + else
> + return ceil(val);
> +}
> diff --git a/include/input.h b/include/input.h
> index 56847ed..a15623a 100644
> --- a/include/input.h
> +++ b/include/input.h
> @@ -594,4 +594,6 @@ extern _X_EXPORT void valuator_mask_copy(ValuatorMask *dest,
> const ValuatorMask *src);
> extern _X_EXPORT int valuator_mask_get(const ValuatorMask *mask, int valnum);
>
> +extern _X_EXPORT double round_towards_zero(double val);
> +
> #endif /* INPUT_H */
> --
> 1.7.5.3
Why not use trunc()?
http://pubs.opengroup.org/onlinepubs/009695399/functions/trunc.html
Matt
More information about the xorg-devel
mailing list