[chuck-users] Integer divisions

Robert Poor rdpoor at gmail.com
Tue Dec 15 08:07:15 EST 2009


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 at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-users



More information about the chuck-users mailing list