[racket-dev] Math library pushed

From: Jay McCarthy (jay.mccarthy at gmail.com)
Date: Sat Nov 17 14:22:10 EST 2012

I just read the documentation. This is great stuff.

Some choices quotes and comments:

"[sum] is like (apply + xs), but incurs rounding error only once when
adding inexact numbers. (In fact, the inexact numbers in xs are summed
separately using flsum.)"

"Use (random-natural k) instead of (random k) when k could be larger
than 4294967087."

"[flhypot] computes (flsqrt (+ (* x x) (* y y))) in way that overflows
only when the answer is too large."

xrefs in "flfactorial" are broken.

All of fllog1p and flexpm1

xrefs in section 2.2 are broken

"In log space, exponentiation becomes multiplication, multiplication
becomes addition, and addition becomes tricky. See lg+ and lgsum for

I like that "catastrophic cancellation" is a technical term in this document.

"flonum->ordinal" is ridiculous

The beginning of section 3 is interesting.

The example in the lambert section is neat.

xrefs in gamma-inc are broken, same with beta-inc

The inverse documentation (and a few other of the number theoretic
functions) have contracts errors that don't seem intentional

You should document the efficiency of prime?

You need racket/function in 4.5's evals

4.6 should use @link

All of 5.2 is fascinating

On Fri, Nov 16, 2012 at 11:59 AM, Neil Toronto <neil.toronto at gmail.com> wrote:
> I've just made the initial commit for the math library. You will all notice
> the build time increase. Some will notice that "(require math)" imports a
> bunch of goodies that Racket didn't have before.
> About half is documented so far, and half has coverage in the test cases.
> Some things are known to be broken, but not many. The most egregious, which
> needs to be fixed very soon, is this one:
>   *****
>   Because of recent changes to how Typed Racket deals with Any types at
>   the contract boundary, typed/rackunit cannot now test higher-order
>   values, such as arrays.
>   *****
> A practical consequence is that "math/tests/array-tests.rkt" simply doesn't
> run.
> One thing I'm not sure of is whether the FFI to libmpfr works on all our
> supported platforms. Could I have all the devs run the following program
> after your next compile?
>   #lang racket
>   (require math/bigfloat)
>   (parameterize ([bf-precision 8192])
>     pi.bf)
> Then reply with the last four digits printed. They should be "4888". If the
> program doesn't run because Racket can't load libmpfr, it's an opportunity
> to test the documentation. Please see if I've made the docs for the
> `math/bigfloat' module clear enough to help you fix the problem.
> Thanks!
> Neil ⊥
> _________________________
>  Racket Developers list:
>  http://lists.racket-lang.org/dev

Jay McCarthy <jay at cs.byu.edu>
Assistant Professor / Brigham Young University

"The glory of God is Intelligence" - D&C 93

Posted on the dev mailing list.