/[cln]/NEWS
ViewVC logotype

Contents of /NEWS

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.26.2.1 - (show annotations)
Sun Aug 6 15:33:05 2006 UTC (6 years, 10 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 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 2005-11-23, version 1.1.11
16 ==========================
17
18 Algorithmic changes
19 -------------------
20
21 * Considerably improved performance of number input.
22
23
24 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 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 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 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 2004-01-01, version 1.1.6
102 =========================
103
104 Functional changes
105 ------------------
106
107 * New function
108 `sintL ldegree(const cl_UP& x)'.
109 (Suggested by Munagala Ramanath.)
110
111 Implementation changes
112 ----------------------
113
114 * Fixed a bug in polynomial subtraction.
115 (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 * Fixed compilation issues with GCC-3.4 prereleases and on Mac OSX.
125
126
127 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 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 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 2001-07-25, version 1.1.2
162
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 2001-05-31, version 1.1.1
171 =========================
172
173 Implementation changes
174 ----------------------
175
176 * Minor cleanups for GCC 3.0 and libstdc++-v3.
177
178 * Fixes several little bugs and portability issues.
179
180
181 2000-12-14, version 1.1.0
182 =========================
183
184 Functional changes
185 ------------------
186
187 * ISO/IEC 14882 fashion adjustments:
188 Put everything into namespace cln. All fundamental data types still
189 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 must be manually ported to the new style. We apologize for the
194 inconvenience.
195
196 Implementation changes
197 ----------------------
198
199 * 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
203 * Adjusted several break-even points to make better use of a faster libgmp and
204 better match present-day CPUs.
205
206 * Fix several errors for architectures with 64-bit wide words.
207 (Others than Alpha, which worked already.)
208
209 * Fix compilation errors with current GCC-3.0 snapshots.
210
211 Other changes
212 -------------
213
214 * Added package tools: script cln-config and autoconf macro AC_PATH_CLN
215 (in file cln.m4).
216
217
218 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