[CLN-list] CLN 1.2.0
Ron Garret
ron at flownet.com
Sun Jan 20 01:00:32 CET 2008
I am pleased to report that CLN-1.2.0 builds and passes all tests on
OS X Leopard on a Core2 Duo.
:-)
rg
On Jan 19, 2008, at 2:34 PM, Richard B. Kreckel wrote:
> Hi,
>
> I am releasing CLN-1.2.0. This took much longer than I hoped it
> would, mainly because the focus of this release has been to support
> huge numbers, i.e. those with billions of decimal digits. And
> turnaround times when testing, debugging and benchmarking programs
> operating on numbers several GiB in size can be rather stultifying.
>
> Another major change is the introduction of C++ exceptions for error
> handling. The cl_abort() hook is not supported any more. This
> allows for much more flexible error handling on the side of your
> application. Please refer to the documentation to learn about
> existing exception types.
>
> Also, some types have changed which might require that you have a
> look at your application code: [su]intC is used for counter loops,
> [su]intE for exponents of all floating-point numbers, and cl_boolean
> has been replaced with standard C++ bool.
>
> As is to be expected, if one pushes the limits of known digits,
> memory consumption becomes a critical issue. So, CLN 1.2.0's
> constants and transcendental functions are noticeably more memory
> efficient than in previous releases. There are two reasons for
> this: First, more use has been made of the streamed binary splitting
> implementation, only used casually in earlier versions: There, the
> rational series terms are not precomputed before starting the binary
> splitting algorithm but rather computed when they are needed. The
> second reason is that while performing the binary splitting, some
> intermediate integer results may become much larger than the
> result's precision warrants. As it turns out, that excess precision
> can simply be truncated by coercing the result into a cl_LF of
> appropriate length. Basically, this compresses the extra digits
> into the floating-point exponent. With some rational series, the
> savings are dramatic. As an extreme example, attached is a picture
> of the memory footprint when computing one million decimal digits of
> Euler's gamma. The red curve corresponds to CLN-1.1.x while the
> blue one to CLN 1.2.0. Here, making the operands smaller even saves
> computing time.
>
> The library has undergone tests with operands of billions of decimal
> digits and I have stopped finding errors many months ago. This
> makes me confident to trust a computation of over 1 billion decimal
> digits of Euler's constant gamma which took one week (and another
> week for a verification on another machine with even higher
> precision). Instead of pasting the result here, let me just write
> it in regexpese:
>
> decimal(gamma) =~ "0.57721566[0-9]{1001262760}39288477"
>
> According to Wikipedia [1] and Xavier Gourdon's list [2], this
> establishes the current world record. It more than eightfolds the
> previous world record by Alexander J. Yee and by the way confirms
> that earlier record's correctness. (I've emailed Mr. Gourdon, but
> he doesn't seem to be tracking numerical world records any more, so
> one cannot be so sure.)
>
> Oh, and last but not least, I should say a big THANK YOU to the
> people who made contributions to this release. You'll find the
> names in the ChangeLog.
>
> Enjoy
> -richy.
>
> [1] <http://en.wikipedia.org/wiki/Mathematical_constant>
> [2] <http://numbers.computation.free.fr/Constants/Gamma/gamma.html>
> [3] <http://numberworld.org/euler116m.html>
> --
> Richard B. Kreckel
> <http://www.ginac.de/~kreckel/>
> <euler.png>_______________________________________________
> CLN-list mailing list
> CLN-list at ginac.de
> https://www.cebix.net/mailman/listinfo/cln-list
More information about the CLN-list
mailing list