Re: MATH_MOD: Include in GLib?
- From: Sven Neumann <sven gimp org>
- To: Jan Kratochvil <lace jankratochvil net>
- Cc: drlion-dated-1091219837 02c327 teepee ath cx, gtk-devel-list gnome org
- Subject: Re: MATH_MOD: Include in GLib?
- Date: 26 Jul 2004 12:41:47 +0200
Jan Kratochvil <lace jankratochvil net> writes:
> On Mon, 26 Jul 2004 10:43:21 +0200, Sven Neumann wrote:
> > Daniel Brockman <drlion deepwood net> writes:
> > > #define MOD(x, m) ((x) >= 0 ? (x) % (m) : (m) + (x) % (m))
> > If at all it would have to be G_MOD(x). But I doubt that
> > the semantics of such a macro are obvious enough and that it would be
> > of general usefulness.
> I consider this macro as a generally used workaround of a bug in C standard.
> I intuitively expect the result of "x%m" will be 0..(m-1), not the C result
> of -(m-1)..(m-1). It has similiar position as G_N_ELEMENTS().
The result of "x%m" will be 0..(m-1) provided that you respect the
fact that the modulo operator is undefined on negative operands. The
behaviour is machine-dependent and you should simply avoid to use
modulo with signed variables.
Also note that your suggest macro won't work if x < m.
] [Thread Prev