/[cln]/NEWS
ViewVC logotype

Contents of /NEWS

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.13 - (hide annotations)
Fri May 25 17:29:46 2001 UTC (12 years ago) by kreckel
Branch: MAIN
Changes since 1.12: +4 -2 lines
        * Adjusted dates and final touches for 1.1.1.

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

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