On Thu, 14 Mar 2002, Peter Jay Salzman wrote: > yeah, i read about this in jeff's 1st link. i'm not really doing much > integer stuff, so it wasn't an issue and i didn't check it. interesting > that integer divide by zero gets caught!
In the x86 architecture, integer division by zero generates software interrupt 0; that makes it easy to catch the problem: http://www.delorie.com/djgpp/doc/rbinter/id/06/0.html I'm not sure about how the x86 interfaces with the FPU, so I couldn't tell you why it doesn't get caught. However: - Floating point division by zero is a well defined behavior. Such an instruction shouldn't kill the program by default. - Integer division by zero should (in general) kill the program by default. - Therefore floating point division by zero and integer division by zero can't have the same default handler. > > I'm not sure what kind of errors your program would have if it's not > > generating "inf" or "nan". ==8<-- > example: > > temperature = 1.0 > > trials Energy per site > 1,000 -2.000000 > 10,000 -1.998448 > 100,000 -1.997171 > 1,000,000 -1.997530 > 10,000,000 -1.997312 <-- very close > 100,000,000 -14.163610 <-- very not correct I have no idea what that means... At a glance, it looks like a rounding error to me... > mark, did you mention arbitrary precision library? just out of > curiosity, what is it called? I just mentioned it because there's one for Java so I figured there'd be one for C and/or C++. Doing a quick "The Big G" search yields GNU MP: http://swox.com/gmp/ -Mark -- Mark K. Kim http://www.cbreak.org/ PGP key available upon request. _______________________________________________ vox-tech mailing list [EMAIL PROTECTED] http://lists.lugod.org/mailman/listinfo/vox-tech
