/[cln]/NEWS
ViewVC logotype

Contents of /NEWS

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.26.2.1 - (hide annotations)
Sun Aug 6 15:33:05 2006 UTC (6 years, 9 months ago) by kreckel
Branch: cln_1-1
CVS Tags: cln_1-1-12
Changes since 1.26: +14 -0 lines
        * Version 1.1.12 released.

1 kreckel 1.26.2.1 2006-08-06, version 1.1.12
2     ==========================
3    
4     Implementation changes
5     ----------------------
6    
7     * Fix rare assertion when printing quite large floats.
8    
9     Other changes
10     -------------
11    
12     * Compilation fixes for several platforms: *BSD, Intel Mac, and MinGW.
13    
14    
15 kreckel 1.26 2005-11-23, version 1.1.11
16     ==========================
17    
18     Algorithmic changes
19     -------------------
20    
21     * Considerably improved performance of number input.
22    
23    
24 kreckel 1.25 2005-10-22, version 1.1.10
25     ==========================
26    
27     Implementation changes
28     ----------------------
29    
30     * Removed the vptr of modular integer and univariate polynomial
31     classes in order to fix some crashes in that sector of CLN. Code
32     using this needs to be recompiled.
33    
34     * Many more operator signatures make the integration of CLN types with
35     float/double easier.
36    
37     Other changes
38     -------------
39    
40     * Several compilation fixes.
41    
42     * Made it possible to cross-compile CLN.
43    
44    
45 kreckel 1.24 2004-11-03, version 1.1.9
46     =========================
47    
48     Algorithmic changes
49     -------------------
50    
51     * Input of numbers in bases 2, 4, 8, 16 and 32 is now done in linear bit
52     complexity as opposed to O(N^2). Useful for all kinds of persistency.
53    
54     Implementation changes
55     ----------------------
56    
57     * Fixed several bugs in the integer input and output routines that could be
58     blamed for random crashes in the following cases: output in base 32 for
59     quite large numbers, input in base 2 for fixnums and input in base 3 for
60     fixnums on a 64 bit target.
61    
62     * Fixed crash when radix specifiers were used in input streams.
63    
64     * Speed up on x86_64 and ia64 by adding some inline assembly.
65    
66     Other changes
67     -------------
68    
69     * Fixes for compilation on MacOS X and little endian Mips.
70    
71    
72 kreckel 1.23 2004-07-01, version 1.1.8
73     =========================
74    
75     Implementation changes
76     ----------------------
77    
78     * Fix bug in log(a,b) when b is 1/n.
79    
80     * Fix crash in shared library on AMD64.
81    
82     Other changes
83     -------------
84    
85     * Fixes for some language conformance issues.
86    
87    
88 kreckel 1.22 2004-05-02, version 1.1.7
89     =========================
90    
91     Implementation changes
92     ----------------------
93    
94     * Fixed two corner case bugs in cl_LF multiplication and sqrt.
95    
96     * Workaround GCC 3.[123] compiler bug.
97    
98     * Parallel build should work reliably now.
99    
100    
101 kreckel 1.21 2004-01-01, version 1.1.6
102 kreckel 1.22 =========================
103 kreckel 1.21
104     Functional changes
105     ------------------
106    
107     * New function
108     `sintL ldegree(const cl_UP& x)'.
109     (Suggested by Munagala Ramanath.)
110 kreckel 1.20
111     Implementation changes
112     ----------------------
113    
114 kreckel 1.21 * Fixed a bug in polynomial subtraction.
115 kreckel 1.20 (Reported by Munagala Ramanath.)
116    
117     Other changes
118     -------------
119    
120     * Provide a package control file cln.pc.
121    
122     * Updated infrastructure to autoconf-2.57.
123    
124 kreckel 1.21 * Fixed compilation issues with GCC-3.4 prereleases and on Mac OSX.
125 kreckel 1.20
126    
127 kreckel 1.19 2002-05-28, version 1.1.5
128     =========================
129    
130     Other changes
131     -------------
132    
133     * Fix compilation issues with GCC-3.1.
134    
135    
136 kreckel 1.18 2002-01-04, version 1.1.4
137     =========================
138    
139     Other changes
140     -------------
141    
142     * Fix compilation issues with GMP-4.0 and on IBM s390.
143    
144     * Updated infrastructure to autoconf-2.52.
145    
146    
147 kreckel 1.17 2001-11-05, version 1.1.3
148     =========================
149    
150     Implementation changes
151     ----------------------
152    
153     * Fix a computation error of sin and sinh for small arguments.
154     (Reported by Christopher Kennedy.)
155    
156     * Module ordering works with gcc-3.0 -fuse-cxa-atexit now.
157    
158     * -DNO_ASM works properly on Sparc.
159    
160    
161 kreckel 1.16 2001-07-25, version 1.1.2
162 kreckel 1.15
163     Implementation changes
164     ----------------------
165    
166     * Minor cleanups and portability issues.
167     (No need to upgrade if you have been happy so far.)
168    
169    
170 kreckel 1.14 2001-05-31, version 1.1.1
171 kreckel 1.12 =========================
172    
173     Implementation changes
174     ----------------------
175    
176 kreckel 1.13 * Minor cleanups for GCC 3.0 and libstdc++-v3.
177    
178     * Fixes several little bugs and portability issues.
179 kreckel 1.12
180    
181 kreckel 1.11 2000-12-14, version 1.1.0
182 kreckel 1.2 =========================
183    
184 kreckel 1.6 Functional changes
185     ------------------
186    
187     * ISO/IEC 14882 fashion adjustments:
188 haible 1.9 Put everything into namespace cln. All fundamental data types still
189 kreckel 1.6 carry their old names. Other non-macro identifiers are now written as
190     cln::foo instead of cl_foo, except where the cl_ comes from a data type
191     (as in cl_I_to_int()). Headers are installed into a separate
192     directory, #include <cln/foo.h> instead of <cl_foo.h>. Applications
193 haible 1.9 must be manually ported to the new style. We apologize for the
194 kreckel 1.6 inconvenience.
195    
196 kreckel 1.2 Implementation changes
197     ----------------------
198    
199 haible 1.9 * Removed internal copy of mpn subdirectory tree from libgmp-2.0.2.
200     Configuring with --with-gmp now relies on an installed libgmp library
201     version 3 or above. We recommend libgmp-3.1 or newer.
202 kreckel 1.2
203 kreckel 1.3 * Adjusted several break-even points to make better use of a faster libgmp and
204     better match present-day CPUs.
205 kreckel 1.6
206 kreckel 1.7 * Fix several errors for architectures with 64-bit wide words.
207 kreckel 1.11 (Others than Alpha, which worked already.)
208 kreckel 1.7
209 haible 1.9 * Fix compilation errors with current GCC-3.0 snapshots.
210 kreckel 1.3
211 kreckel 1.8 Other changes
212     -------------
213    
214 kreckel 1.10 * Added package tools: script cln-config and autoconf macro AC_PATH_CLN
215 kreckel 1.8 (in file cln.m4).
216    
217 kreckel 1.2
218 kreckel 1.1 2000-01-13, version 1.0.3
219     =========================
220    
221     Functional changes
222     ------------------
223    
224     * New function
225     `cl_I doublefactorial (uintL n)'.
226    
227     Implementation changes
228     ----------------------
229    
230     * Fix several little configuration errors.
231    
232     * Fix some compilation errors with gcc-2.96 prereleases.
233    
234    
235     1999-09-07, version 1.0.2
236     =========================
237    
238     Functional changes
239     ------------------
240    
241     * New functions
242     `cl_I numerator (const cl_RA&)'
243     `cl_I denominator (const cl_RA&)'.
244     Suggested by Richard Kreckel and Sylvain Pion.
245    
246     * New function `cl_equal_hashcode' for the classes cl_N, cl_R, cl_RA, cl_I,
247     cl_F, cl_SF, cl_FF, cl_DF, cl_LF.
248     Suggested by Richard Kreckel.
249    
250     Implementation changes
251     ----------------------
252    
253     * Fix an endless loop when either of the functions
254     `cl_boolean rootp (const cl_RA&, uintL, cl_RA*)',
255     `cl_boolean rootp (const cl_RA&, const cl_I&, cl_RA*)'
256     was called with an integer argument. Thanks to Richard Kreckel.
257    
258     * Fix a bug in the addition and subtraction of rational numbers which could
259     cause unnormalized rational numbers like 3/1 to be created.
260    
261    
262     1999-06-09, version 1.0.1
263     =========================
264    
265     Algorithmic changes
266     -------------------
267    
268     * Speed up the functions `logand', `lognand', `logandc2'.
269    
270     Implementation changes
271     ----------------------
272    
273     * Fix compilation errors with gcc-2.7.2, egcs-1.1.2 and gcc-2.95.
274    
275     * Fix compilation errors on HPPA, MIPS, some versions of DEC Alpha, OpenBSD,
276     and SPARC with LiDIA.
277    
278     * Fix compilation errors on Win32. Thanks to Mumit Khan.
279    
280    
281     1999-01-12, version 1.0
282     =======================
283    
284     Functional changes
285     ------------------
286    
287     * New include files, containing I/O functions:
288     <cl_integer_io.h>
289     <cl_rational_io.h>
290     <cl_float_io.h>
291     <cl_sfloat_io.h> <cl_ffloat_io.h> <cl_dfloat_io.h> <cl_lfloat_io.h>
292     <cl_real_io.h>
293     <cl_complex_io.h>
294     The file <cl_io.h> now contains only I/O functions for characters and
295     C integers.
296    
297     * To access the base ring of a univariate polynomial ring, now use
298     `R->basering()' instead of `R->basering'.
299    
300     * Implement `plusp', `max', `min' for the classes cl_F, cl_SF, cl_FF, cl_DF,
301     cl_LF, cl_RA, cl_I.
302    
303     * Implement `abs' for the class cl_RA.
304    
305     * Replaced `read_number' with specialized functions `read_complex',
306     `read_real', `read_float', `read_rational', `read_integer'.
307    
308     * Replaced the functions
309     `void fprint (cl_ostream stream, int x)'
310     `void fprint (cl_ostream stream, unsigned int x)'
311     `void fprint (cl_ostream stream, long x)'
312     `void fprint (cl_ostream stream, unsigned long x)'
313     with
314     `void fprintdecimal (cl_ostream stream, int x)'
315     `void fprintdecimal (cl_ostream stream, unsigned int x)'
316     `void fprintdecimal (cl_ostream stream, long x)'
317     `void fprintdecimal (cl_ostream stream, unsigned long x)'
318    
319     Algorithmic changes
320     -------------------
321    
322     * The function `cl_I xgcd (const cl_I& a, const cl_I& b, cl_I* u, cl_I* v)'
323     now normalizes the resulting u and v to be of minimum absolute value.
324     (Suggested by the LiDIA group.)
325    
326     * The conversion from string to cl_F, cl_R, cl_N now chooses the format of
327     the resulting float depending on the number of significant digits present
328     in the input string.
329    
330     * Speed up the functions
331     `cl_R operator* (const cl_RA&, const cl_LF&)'
332     `cl_R operator* (const cl_LF&, const cl_RA&)'
333     `cl_R operator/ (const cl_RA&, const cl_LF&)'
334     `cl_LF operator/ (const cl_LF&, const cl_RA&)'
335    
336     Implementation changes
337     ----------------------
338    
339     * Fix for `cl_I ash (const cl_I& x, const cl_I& n)' when |n| is between
340     2^29 and 2^37.
341     (Reported by Thomas Papanikolaou.)
342    
343     * Fixed a memory leak in the long-float truncate function.
344     (Reported by Keith Briggs.)
345    
346     * Fixed a memory leak in the modular integer exponentiation.
347    
348     * Reduced the stack space consumption. The default stack size (typically
349     8 MB on Unix) should now be sufficient in order to run all CLN programs.
350    
351     * Portability fixes for m68k platforms.
352     (Reported and fixed by Roman Hodek.)
353    
354     Other changes
355     -------------
356    
357     * Restructured the sources. The subpackages
358     - base
359     - base + integer
360     - base + integer + rational
361     - base + integer + rational + float
362     - base + integer + rational + float + real
363     - base + integer + rational + float + real + complex
364     - base + integer + modinteger
365     are now self-contained.
366    
367     * The configuration script can be called with option `--enable-shared',
368     to build CLN as a shared library.
369    
370     * Updated the LiDIA interface.
371    
372    
373     1998-05-07, version 0.98
374     ========================
375    
376     Implementation changes
377     ----------------------
378    
379     * Portability fixes for 64-bit platforms like DEC Alpha.
380     (Reported by John Cremona and Thomas Papanikolaou.)
381    
382    
383     1998-02-27
384     ==========
385    
386     Other changes
387     -------------
388    
389     * Portability fixes for new ISO/ANSI C++ compilers.
390    
391     * Updated the LiDIA interface for LiDIA version 1.3 and fixed a couple of
392     bugs.
393    
394    
395     1997-09-06
396     ==========
397    
398     Implementation changes
399     ----------------------
400    
401     * Portability fix for i686 platforms.
402     (Reported by Michael Pfeifer.)
403    
404    
405     1997-09-01
406     ==========
407    
408     Functional changes
409     ------------------
410    
411     * New include files:
412     <cl_ring.h>, declaring general rings,
413     <cl_GV.h>, <cl_SV.h>, defining vectors,
414     <cl_univpoly.h>, defining univariate polynomial rings.
415    
416     Algorithmic changes
417     -------------------
418    
419     * Speed up the internal computation of ln(2) and ln(10) by about 20%.
420    
421     * Speed up the computation of exp (for 1000 digits or more) by about 10%.
422    
423     Implementation changes
424     ----------------------
425    
426     * Portability fix for 64-bit platforms like DEC Alpha:
427     Fixed a bug: endless loop in `sqrt' for large precision.
428     (Reported by Blake Jones.)
429    
430     * Portability fix for RS/6000 platforms.
431    
432    
433     1997-02-21
434     ==========
435    
436     Algorithmic changes
437     -------------------
438    
439     * Speed up the computation of the elementary transcendental functions:
440     exp, sinh, cosh, asinh, atanh (for 100 digits) by about 30%,
441     log (for 100 digits) by about 25%,
442     sin, cos (for 1000 or 10000 digits) by about 20%,
443     asin, acos, atan (for 1000 digits) by about 25%.
444    
445     Implementation changes
446     ----------------------
447    
448     * Portability fix for SunOS 4 and other BSD platforms.
449    
450    
451     1997-01-31
452     ==========
453    
454     Algorithmic changes
455     -------------------
456    
457     * Fixed a bug: endless recursion in `cl_boolean sqrtp (const cl_RA&, cl_RA*)'.
458    
459     * Fixed a bug: Only the first 85% of the digits returned by `cl_eulerconst'
460     for moderate precision (< 11370 digits) were correct.
461     (Reported by Thomas Papanikolaou.)
462    
463     Implementation changes
464     ----------------------
465    
466     * Fix static initialization order bug. Requires g++ 2.7.0 or newer
467     (g++ 2.8.0 or newer on HPPA).
468    
469     * New method `debug_print()', for pretty printing of CLN objects, intended
470     to be called from the debugger.
471    
472    
473     1997-01-07
474     ==========
475    
476     Functional changes
477     ------------------
478    
479     * New functions `float cl_float_approx (const cl_R&)',
480     `double cl_double_approx (const cl_R&)'
481     for converting a real number to a C `float' or `double'.
482    
483     Algorithmic changes
484     -------------------
485    
486     * Speed up `cl_zeta' using Cohen-Villegas-Zagier convergence acceleration.
487    
488     Implementation changes
489     ----------------------
490    
491     * New function `cl_print', for pretty printing of CLN objects, intended to be
492     called from the debugger.
493    
494     * Portability fixes for 64-bit platforms like DEC Alpha.
495    
496    
497     1996-11-29
498     ==========
499    
500     Functional changes
501     ------------------
502    
503     * New include files:
504     <cl_string.h>, defining strings,
505     <cl_symbol.h>, defining symbols,
506     <cl_proplist.h>, defining property lists,
507     <cl_condition.h>, defining conditions/exceptions.
508    
509     * New functions `cl_F cl_catalanconst ()',
510     `cl_F cl_catalanconst (const cl_F&)',
511     `cl_F cl_catalanconst (cl_float_format_t)'
512     which return Catalan's constant.
513     (Suggested by Thomas Papanikolaou.)
514    
515     * New functions `cl_F cl_zeta (int s)',
516     `cl_F cl_zeta (int s, const cl_F&)',
517     `cl_F cl_zeta (int s, cl_float_format_t)'
518     which return the Riemann zeta function at an integral point s>1.
519    
520     * New functions `cl_F cl_exp1 ()',
521     `cl_F cl_exp1 (const cl_F&)',
522     `cl_F cl_exp1 (cl_float_format_t)'
523     which return e = exp(1).
524    
525     * New function `cl_I binomial (uintL n, uintL k)' which returns the
526     binomial coefficient (n choose k).
527    
528     * New functions `int cl_I_to_int (const cl_I&)',
529     `unsigned int cl_I_to_uint (const cl_I&)',
530     `long cl_I_to_long (const cl_I&)',
531     `unsigned long cl_I_to_ulong (const cl_I&)'
532     for converting an integer to a C `int' or `long'.
533    
534     * New functions `float cl_float_approx (const cl_I&)',
535     `float cl_float_approx (const cl_RA&)',
536     `double cl_double_approx (const cl_I&)',
537     `double cl_double_approx (const cl_RA&)'
538     for converting a rational number to a C `float' or `double'.
539    
540     Implementation changes
541     ----------------------
542    
543     * Moved the sources to subdirectories.
544     (Suggested by Jörg Arndt.)
545    
546     Other changes
547     -------------
548    
549     * New benchmark for better comparing LiDIA, Pari and CLN.
550    
551     * Added an interface to LiDIA, allows using CLN as a replacement of libI.
552     (Suggested by Thomas Papanikolaou.)
553    
554     * Added an ILOG Talk interface, for interactive use of the library.
555    
556    
557     1996-10-13
558     ==========
559    
560     Functional changes
561     ------------------
562    
563     * New include file <cl_modinteger.h>, defining modular integer rings.
564    
565     * New functions `cl_F cl_eulerconst ()', `cl_F cl_eulerconst (const cl_F&)',
566     `cl_F cl_eulerconst (cl_float_format_t)' which return Euler's constant.
567    
568     Algorithmic changes
569     -------------------
570    
571     * Speed up square root of large numbers by use of Newton's algorithm.
572    
573     * Speed up multiplication and division of large long-floats by small integers.
574    
575     * Speed up the computation of pi, e, exp, log, sin, cos, tan, sinh, cosh, tanh,
576     asin, acos, atan, asinh, acosh, atanh.
577     All of them are now computed with asymptotically fast algorithms, of
578     bit complexity O(log(N)^2*M(N)) = O(N^(1+epsilon)) for N digits.
579    
580     * Fixed several bugs in the transcendental functions routines. In particular,
581     the `log' function went into an endless loop.
582    
583     * Fixed a bug: The cl_I -> cl_DF and cl_I -> cl_LF conversions didn't work
584     correctly for negative integers.
585    
586    
587     1996-09-08
588     ==========
589    
590     Functional changes
591     ------------------
592    
593     * New include file <cl_numtheory.h>, containing number theoretic functions,
594     for now only the Jacobi symbol.
595    
596     Algorithmic changes
597     -------------------
598    
599     * Speed up squaring of large numbers by 30%.
600    
601     * Speed up division of large numbers by use of Newton's algorithm. The
602     improvement is noticeable for numbers with at least about 1000 words =
603     32000 bits = 10000 decimal digits.
604    
605     * Speed up the binary-to-decimal conversion of large numbers by use of
606     a divide-and-conquer method. The improvement is noticeable for numbers
607     of at least 1250 words = 40000 bits = 12000 decimal digits.
608    
609     * Fixed a bug: The functions `cl_boolean minusp (const type&)' and
610     `cl_boolean zerop (const type&)' were missing for type=cl_I and type=cl_RA.
611    
612     * Fixed a bug: The function `cl_boolean logtest (const cl_I&, const cl_I&)'
613     didn't work correctly if both arguments were bignums.
614    
615     * Fixed a bug: The function `cl_I mod (const cl_I&, const cl_I&)', when called
616     as `mod(-n*m,m)' (n>0), returned m instead of 0.
617    
618     * Fixed a bug: The function `uintL power2p (const cl_I&)' returned wrong
619     values for arguments x = 2^n, n >= 29.
620    
621     Implementation changes
622     ----------------------
623    
624     * Speed up CLN by using the low-level addition/subtraction, shift and
625     multiplication loops from GNU gmp-2.0.2.
626    
627     * Fixed a severe reference counting bug in the constructors
628     `type::type (const long)' and `type::type (const unsigned long)'
629     for type=cl_number, type=cl_N, type=cl_RA, type=cl_I that most often
630     caused a core dump.
631    
632     * CLN's word sequences can be chosen to be stored big-endian in memory
633     (like it was up to now) or little-endian (needed for interfacing to GMP).
634    
635    
636     1996-05-20
637     ==========
638    
639     Functional changes
640     ------------------
641    
642     * New include file <cl_timing.h>, contains timing facilities.
643    
644     Algorithmic changes
645     -------------------
646    
647     * Speed up the multiplication of large numbers by use of an FFT based
648     algorithm (Schönhage-Strassen). The improvement is noticeable when both
649     factors have at least 1250 words = 40000 bits = 12000 decimal digits.
650    
651     * Speed up the functions `cl_I gcd (const cl_I&, const cl_I&)' and
652     `cl_I xgcd (const cl_I&, const cl_I&, cl_I*, cl_I*)' by a factor
653     of 1.5. Simple trick.
654    
655     * Speed up the function `cl_boolean sqrtp (const cl_I&, cl_I*)' using a
656     trick from Henri Cohen.
657    
658     * Fixed an endless loop in the function `uint32 gcd (uint32, uint32)'
659     which occurred when one of the arguments is zero.
660    
661     * Fixed an endless loop in the function `cl_I factorial (uintL)'.
662    
663     Implementation changes
664     ----------------------
665    
666     * <cl_io.h> now uses iostreams by default instead of stdio FILE pointers.
667     (Reported by Tito Flagella.)
668    
669     * Fixed linking error when compiling without -O.
670     (Reported by Tito Flagella.)
671    
672     * Fixed syntax error in <cl_input.h>.
673     (Reported by Tito Flagella.)
674    
675     * Fixed syntax errors in src/cl_DS.h and src/cl_FF_plus.h.
676     (Reported by Marcus Daniels.)
677    
678     * More portability fixes.
679    
680     * Configuration now supports the --srcdir option.
681     (Reported by Marcus Daniels.)
682    
683    
684     1996-01-03
685     ==========
686    
687     * Compiles well on Sparc, using gcc.
688    
689     * Mail to beta testers.
690    
691    
692     1995-12-06
693     ==========
694    
695     * Compiles well on Linux, using gcc.
696    

Christian Bauer">Christian Bauer
ViewVC Help
Powered by ViewVC 1.1.15