/[cln]/NEWS
ViewVC logotype

Contents of /NEWS

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.21 - (hide annotations)
Thu Jan 1 16:14:30 2004 UTC (9 years, 4 months ago) by kreckel
Branch: MAIN
CVS Tags: cln_1-1-6
Changes since 1.20: +10 -3 lines
* Finalize release 1.1.6.

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

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