On Thu, Dec 15, 2005 at 11:33:46PM -0600, erik quanstrom wrote:
> you've got to take you're math cap off, and put your cs cap on.
This has nothing to do with it. You're looking for a single definitive
definition of something that has no single definitive definition.
> the motivation for defining MOD and DIV is so you can do somethign
> like this
>
> row = size DIV columns
> col = size MOD columns
Well, one would hope so! But then you have to wonder why `size' would
have occasion to be negative in such an example. And even if it was,
why you couldn't work with absolute values and keep track of the signs
yourself. Like what Bruce said.
> the pseudo-mathematics is applied ex post facto. clearly you have to
> get a single value out of the operation but that value is never going to
> be a member of Z. it's going to be a n-bit binary integer. also,
n-bit binary *integers* are members of Z (where Z is the set of all
integers: their representation doesn't matter). But that's beside the
point. In either case, you will get a single value back. The question
is whether that value represents a congruence class or a single integer.
If you restrict your domain to non-negative integers, in this context,
it doesn't matter; you get something that's more or less the same thing
for your purposes. If you allow negative integers, that's when the
differences become significant. As Bruce said, I think it best to avoid
the situation.
> ; cat > /tmp/fu.c
> int main(void){
> int x;
>
> x = 1 % 0;
> }
> /tmp/fu.c: In function `main':
> /tmp/fu.c:4: warning: division by zero
Well, at least one compiler is sane.
- Dan C.