Zeroing in on one point: > > A solution might be to instead provide a pragmatic, rather than > mathematical > > parameter: > > > > :$numbits = 64 > > > > This would say to keep as much precision as possible while making the > result > > fit in 64 bits. For example 2.147483647e0.Rat would result in > > 2147483647/1000000000 instead of 4310/2007. > > The Num type basically has a denominator which is based on 2s, not 10s. >
The proposal is more-or-less expressible as having epsilon = 2/:numbits - presuming that the numerator and denominator are about the same size. >From my POV the default epsilon is fine for practical use, but imprecise enough to have this conversation come up repeatedly. Search this list for "$epsilon = 1.0e-6 feels too big for Rat()" How about setting the default epsilon to 1/2**32 or 1/2**64 and closing that 2015 New Year's Eve post & this one too? -y