[racket-dev] Sublinear functions of superfloat numbers

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Sun Jul 1 18:04:37 EDT 2012

3. Can you explain the issue again, using smaller words? (I think I
understand the first example, but then I'm lost.)

Robby

On Sun, Jul 1, 2012 at 5:02 PM, Matthias Felleisen <matthias at ccs.neu.edu> wrote:
>
> 1. What's the computational cost of such changes?
>
> 2. What is the impact on TR? 3.
>
>
> On Jun 30, 2012, at 9:15 PM, Neil Toronto wrote:
>
>> I've noticed something interesting about the `log' function. Check out this interaction:
>>
>> > (real->double-flonum #e1e400)
>> +inf.0
>> > (log #e1e400)
>> 921.0340371976183
>>
>> It's obviously not just converting to flonum first; it's likely doing some kind of argument reduction internally.
>>
>> `sqrt' operates on superfloat numbers when they're perfect squares, and `sin' doesn't at all:
>>
>> > (sqrt #e1e400)
>> [1e200 written out]
>> > (sqrt #e1e401)
>> +inf.0
>> > (sin #e1e400)
>> +nan.0
>>
>> I have two questions:
>>
>> 1. I think I have the Mad Skillz to make these work by wrapping the primitives with something that does argument reduction. Should I? (It should be especially interesting to do `sin', requiring an arbitrary-precision `pi' constant. Woo!)
>>
>> 2. Under what circumstances should sublinear `math' library functions do this? All of them?
>>
>> Neil ⊥
>> _________________________
>> Racket Developers list:
>> http://lists.racket-lang.org/dev
>
>
> _________________________
>   Racket Developers list:
>   http://lists.racket-lang.org/dev


Posted on the dev mailing list.