Hans: You've forced my hand. Would you be interested in a rational number package (y'know, where numbers are represented as a fraction)? I wrote one "by accident" when I thought that roundoff was causing a problem. It wasn't, but I have a cleanly written and tested Rational class if anyone could use it. Comes with a test suite. Has a stable float-to-rational conversion algorithm where you get to specify the maximum denominator. It even has a to_string() routine. If someone tells me where to put the code, I'm happy to send it. Yours in attempted helpfulness... - Rob On 15 Dec 2009, at 02:29, Hans Aberg wrote:
I find the integer divisions C rule is problematic when working with intervals. Suppose I have [8/7, 7/6, 7/6, 8/7] and implement it as [Interval.r(8/7), Interval.r(7/6), Interval.r(7/6), Interval.r(8/7)] Then this is the same as: [Interval.r(0), Interval.r(0), Interval.r(0), Interval.r(0)] One has to add ".0" one of the numerator/denominator: [Interval.r(8.0/7), Interval.r(7.0/6), Interval.r(7.0/6), Interval.r(8.0/7)],
One possible rule might be converting 32-bit int to 64-bit floats, and then only back to int when needed. The question if it then affects some ChucK legacy code.
Hans
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users