# [racket-dev] Sublinear functions of superfloat numbers

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
*