----- Original Message -----
From: "Stephan K?mper" <Stephan.Kaemper / Schleswig-Holstein.de>

<snip lecture>
Now speaking in integers 5 / 9 IS 0, while 5 % 9 IS 5.

There's nothing more to it.
----------------------------

I think it's clear that the original poster did *not* need the mysteries of
integer arithmetic explained.  :)

Now an explanation for you:

Getting back to an earlier post in this thread, we have this:

  irb(main):002:0> m = Matrix[[1, 3], [2, 4]]
  Matrix[[1, 3], [2, 4]]
  irb(main):003:0> n = m.inv
  Matrix[[-3, 2], [1, -1]]

Now, however you may feel about integer division, this is just WRONG.  That
is not the inverse of that matrix an *any* sense of the word.  That is, in
fact, a totally meaningless answer.

The original poster was not saying that Ruby is buggy.  The original poster
was certainly not saying *anything* about integer arithmetic being buggy.
The original poster was saying that the above is wrong in every situation.
Until you can find any way in which the above is the desired behavior, or is
even meaningful at all, I don't see why you would feel the need to disagree
with this.


----------------------------
I personally think that you should be as explicit as possible
<snip something about some P-language>
In this case that means that you should probably feed the matrices with
floating point numbers rather than integers.
----------------------------

?!?  Because they are more "explicit"??  You seem to know a lot more about
integer arithmetic than about floating-point arithmetic.

Anyone doing serious floating point computation has to be concerned with
error accumulation, rounding errors, numbers too big or small to fit into a
float... it's all about minimizing error!


Anyway, here's another possible solution (instead of just requiring mathn):

It could check when it is loaded if 5/9 is zero or not.  If so, it could
generate an error or spit out a warning or something.  This would allow one
to use matrix with a different math package, if you wanted.  The warning
could even suggest possible solutions (like including mathn instead).

Chris