[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