[racket-dev] Sublinear functions of superfloat numbers
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