]> www.ginac.de Git - cln.git/blob - ChangeLog
Enable modifying operators by default.
[cln.git] / ChangeLog
1 2007-02-07  Richard B. Kreckel  <kreckel@ginac.de>
2
3         * include/cln/integer.h: Enable modifying operators by default.
4         * include/cln/rational.h: Likewise.
5         * include/cln/sfloat.h: Likewise.
6         * include/cln/ffloat.h: Likewise.
7         * include/cln/dfloat.h: Likewise.
8         * include/cln/lfloat.h: Likewise.
9         * include/cln/float.h: Likewise.
10         * include/cln/real.h: Likewise.
11         * include/cln/complex.h: Likewise.
12         * doc/cln.texi: Document that.
13
14 2007-02-06  Richard B. Kreckel  <kreckel@ginac.de>
15
16         Fix crash in output of huge numbers:
17         * src/integer/conv/cl_I_to_digits.cc: Make erglen uintC.
18         * src/integer/output/cl_I_print_string.cc: Make B_baselen uintC.
19
20 2007-02-04  Richard B. Kreckel  <kreckel@ginac.de>
21
22         Fix cl_F output of more than 2^32 decimal digits:
23         * src/base/string/cl_sstring.cc (cl_sstring): make len uintC.
24         * src/base/string/cl_sstring.h: Likewise.
25
26 2007-01-23  Bruno Haible  <bruno@clisp.org>
27
28         Allow 64-bit builds on MacOS X 10.5.
29         * m4/general.m4 (CL_CANONICAL_HOST_CPU): Test for x86_64 CPU if
30         "uname -m" returns "i386".
31         Reported by Ron Garret <ron@flownet.com>.
32
33 2007-01-20  Bruno Haible  <bruno@clisp.org>
34
35         Avoid some gcc warnings.
36         * autoconf/floatparam.c (flipped_double): Use a union instead of a
37         type-punning cast.
38         * include/cln/number.h (union ffloatjanus, union dfloatjanus): Remove
39         declarations.
40         (cl_float_to_FF_pointer, cl_double_to_DF_pointer): Change argument
41         type.
42         (CL_DEFINE_FLOAT_CONSTRUCTOR, CL_DEFINE_DOUBLE_CONSTRUCTOR): Update.
43         * src/float/ffloat/cl_FF.h (cl_float_to_FF_pointer): Change argument
44         type.
45         (cl_float_to_FF): Remove function.
46         * src/float/ffloat/conv/cl_FF_from_float.cc (FAST_FLOAT): Define.
47         (cl_float_to_FF_pointer): Change argument type.
48         * src/float/dfloat/cl_DF.h (cl_double_to_DF_pointer): Change argument
49         type.
50         (cl_double_to_DF): Remove function.
51         * src/float/dfloat/conv/cl_DF_from_double.cc (FAST_DOUBLE): Define.
52         (cl_double_to_DF_pointer): Change argument type.
53         * src/float/lfloat/cl_LF_impl.h (LF_decode): Mark the mantlen_zuweisung
54         assignment as possibly unused.
55         * src/base/cl_low.h (mulu32): Mark the hi_zuweisung assignment as
56         possibly unused.
57         * src/float/transcendental/cl_LF_zeta_int.cc (compute_zeta_cvz2):
58         Remove unused local variable.
59
60 2007-01-19  Richard B. Kreckel  <kreckel@ginac.de>
61
62         * Version 1.2.0 released.
63
64 2007-01-19  Richard B. Kreckel  <kreckel@ginac.de>
65
66         * doc/Makefile.in: texi2html -split_chapter doesn't generate
67         cln_toc.html any more.
68         * doc/cln.texi: Add table of contents in TeX output.
69
70 2007-01-18  Alexei Sheplyakov  <varg@theor.jinr.ru>
71
72         Fix linking problems on some platforms caused by inline/non-inline
73         versions of same functions (obsoletes MAYBE_INLINE):
74         * src/base/cl_maybe_inline.h: New file.
75         * src/base/cl_inline2.h: New file.
76         * src/base/cl_inline.h: New file.
77         * src/base/string/cl_st_make0.h: New file.
78         * src/base/cl_macros.h: Pull in cl_maybe_inline.h.
79         * src/base/string/cl_st_concat1.cc: Use new CL_INLINE macros and the
80         new *_inline functions.
81         * src/base/string/cl_st_concat2.cc: Likewise.
82         * src/base/string/cl_st_concat3.cc: Likewise.
83         * src/complex/algebraic/cl_C_abs.cc: Likewise.
84         * src/complex/algebraic/cl_C_abs_aux.cc: Likewise.
85         * src/complex/algebraic/cl_C_signum.cc: Likewise.
86         * src/complex/algebraic/cl_DF_hypot.cc: Likewise.
87         * src/complex/algebraic/cl_FF_hypot.cc: Likewise.
88         * src/complex/algebraic/cl_LF_hypot.cc: Likewise.
89         * src/complex/algebraic/cl_SF_hypot.cc: Likewise.
90         * src/complex/transcendental/cl_C_acosh.cc: Likewise.
91         * src/complex/transcendental/cl_C_asinh_aux.cc: Likewise.
92         * src/complex/transcendental/cl_C_atanh_aux.cc: Likewise.
93         * src/float/dfloat/division/cl_DF_fceil.cc: Likewise.
94         * src/float/dfloat/elem/cl_DF_div.cc: Likewise.
95         * src/float/dfloat/elem/cl_DF_ffloor.cc: Likewise.
96         * src/float/dfloat/elem/cl_DF_minusp.cc: Likewise.
97         * src/float/dfloat/elem/cl_DF_mul.cc: Likewise.
98         * src/float/dfloat/elem/cl_DF_plusp.cc: Likewise.
99         * src/float/dfloat/elem/cl_DF_zerop.cc: Likewise.
100         * src/float/dfloat/misc/cl_DF_abs.cc: Likewise.
101         * src/float/dfloat/misc/cl_DF_digits.cc: Likewise.
102         * src/float/dfloat/misc/cl_DF_eqhashcode.cc: Likewise.
103         * src/float/dfloat/misc/cl_DF_exponent.cc: Likewise.
104         * src/float/dfloat/misc/cl_DF_idecode.cc: Likewise.
105         * src/float/dfloat/misc/cl_DF_precision.cc: Likewise.
106         * src/float/dfloat/misc/cl_DF_sign.cc: Likewise.
107         * src/float/dfloat/misc/cl_DF_signum.cc: Likewise.
108         * src/float/elem/cl_F_minusp.cc: Likewise.
109         * src/float/elem/cl_F_plusp.cc: Likewise.
110         * src/float/elem/cl_F_zerop.cc: Likewise.
111         * src/float/ffloat/division/cl_FF_fceil.cc: Likewise.
112         * src/float/ffloat/elem/cl_FF_div.cc: Likewise.
113         * src/float/ffloat/elem/cl_FF_ffloor.cc: Likewise.
114         * src/float/ffloat/elem/cl_FF_minusp.cc: Likewise.
115         * src/float/ffloat/elem/cl_FF_mul.cc: Likewise.
116         * src/float/ffloat/elem/cl_FF_plusp.cc: Likewise.
117         * src/float/ffloat/elem/cl_FF_zerop.cc: Likewise.
118         * src/float/ffloat/misc/cl_FF_abs.cc: Likewise.
119         * src/float/ffloat/misc/cl_FF_digits.cc: Likewise.
120         * src/float/ffloat/misc/cl_FF_eqhashcode.cc: Likewise.
121         * src/float/ffloat/misc/cl_FF_exponent.cc: Likewise.
122         * src/float/ffloat/misc/cl_FF_idecode.cc: Likewise.
123         * src/float/ffloat/misc/cl_FF_precision.cc: Likewise.
124         * src/float/ffloat/misc/cl_FF_sign.cc: Likewise.
125         * src/float/ffloat/misc/cl_FF_signum.cc: Likewise.
126         * src/float/lfloat/division/cl_LF_fceil.cc: Likewise.
127         * src/float/lfloat/elem/cl_LF_compare.cc: Likewise.
128         * src/float/lfloat/elem/cl_LF_ffloor.cc: Likewise.
129         * src/float/lfloat/elem/cl_LF_minusp.cc: Likewise.
130         * src/float/lfloat/elem/cl_LF_plusp.cc: Likewise.
131         * src/float/lfloat/elem/cl_LF_to_I.cc: Likewise.
132         * src/float/lfloat/elem/cl_LF_zerop.cc: Likewise.
133         * src/float/lfloat/misc/cl_LF_abs.cc: Likewise.
134         * src/float/lfloat/misc/cl_LF_digits.cc: Likewise.
135         * src/float/lfloat/misc/cl_LF_eqhashcode.cc: Likewise.
136         * src/float/lfloat/misc/cl_LF_exponent.cc: Likewise.
137         * src/float/lfloat/misc/cl_LF_idecode.cc: Likewise.
138         * src/float/lfloat/misc/cl_LF_precision.cc: Likewise.
139         * src/float/lfloat/misc/cl_LF_shortenrel.cc: Likewise.
140         * src/float/lfloat/misc/cl_LF_shortenwith.cc: Likewise.
141         * src/float/lfloat/misc/cl_LF_sign.cc: Likewise.
142         * src/float/lfloat/misc/cl_LF_signum.cc: Likewise.
143         * src/float/misc/cl_F_abs.cc: Likewise.
144         * src/float/misc/cl_F_digits.cc: Likewise.
145         * src/float/misc/cl_F_eqhashcode.cc: Likewise.
146         * src/float/misc/cl_F_exponent.cc: Likewise.
147         * src/float/misc/cl_F_idecode.cc: Likewise.
148         * src/float/misc/cl_F_precision.cc: Likewise.
149         * src/float/misc/cl_F_sign.cc: Likewise.
150         * src/float/misc/cl_F_signum.cc: Likewise.
151         * src/float/sfloat/division/cl_SF_fceil.cc: Likewise.
152         * src/float/sfloat/division/cl_SF_ffloor.cc: Likewise.
153         * src/float/sfloat/elem/cl_SF_compare.cc: Likewise.
154         * src/float/sfloat/elem/cl_SF_minus.cc: Likewise.
155         * src/float/sfloat/elem/cl_SF_minusp.cc: Likewise.
156         * src/float/sfloat/elem/cl_SF_plusp.cc: Likewise.
157         * src/float/sfloat/elem/cl_SF_uminus.cc: Likewise.
158         * src/float/sfloat/elem/cl_SF_zerop.cc: Likewise.
159         * src/float/sfloat/misc/cl_SF_abs.cc: Likewise.
160         * src/float/sfloat/misc/cl_SF_digits.cc: Likewise.
161         * src/float/sfloat/misc/cl_SF_eqhashcode.cc: Likewise.
162         * src/float/sfloat/misc/cl_SF_exponent.cc: Likewise.
163         * src/float/sfloat/misc/cl_SF_idecode.cc: Likewise.
164         * src/float/sfloat/misc/cl_SF_precision.cc: Likewise.
165         * src/float/sfloat/misc/cl_SF_sign.cc: Likewise.
166         * src/float/sfloat/misc/cl_SF_signum.cc: Likewise.
167         * src/float/transcendental/cl_F_atanhx.cc: Likewise.
168         * src/float/transcendental/cl_F_atanx.cc: Likewise.
169         * src/float/transcendental/cl_F_exp.cc: Likewise.
170         * src/float/transcendental/cl_F_expx.cc: Likewise.
171         * src/float/transcendental/cl_F_lnx.cc: Likewise.
172         * src/float/transcendental/cl_F_sinhx.cc: Likewise.
173         * src/float/transcendental/cl_F_sinx.cc: Likewise.
174         * src/float/transcendental/cl_F_tan.cc: Likewise.
175         * src/float/transcendental/cl_F_tanh.cc: Likewise.
176         * src/integer/conv/cl_I_from_DS.cc: Likewise.
177         * src/integer/conv/cl_I_from_NDS.cc: Likewise.
178         * src/integer/conv/cl_I_from_NUDS.cc: Likewise.
179         * src/integer/conv/cl_I_from_UDS.cc: Likewise.
180         * src/integer/misc/cl_I_eqhashcode.cc: Likewise.
181         * src/integer/misc/cl_I_signum.cc: Likewise.
182         * src/integer/ring/cl_I_ring.cc: Likewise.
183         * src/rational/elem/cl_RA_minusp.cc: Likewise.
184         * src/rational/misc/cl_RA_eqhashcode.cc: Likewise.
185         * src/rational/misc/cl_RA_signum.cc: Likewise.
186         * src/rational/ring/cl_RA_ring.cc: Likewise.
187         * src/real/algebraic/cl_RA_sqrt.cc: Likewise.
188         * src/real/algebraic/cl_R_sqrt.cc: Likewise.
189         * src/real/conv/cl_F_from_R_def.cc: Likewise.
190         * src/real/elem/cl_R_minusp.cc: Likewise.
191         * src/real/elem/cl_R_zerop.cc: Likewise.
192         * src/real/misc/cl_R_eqhashcode.cc: Likewise.
193         * src/real/misc/cl_R_signum.cc: Likewise.
194         * src/real/transcendental/cl_R_tan.cc: Likewise.
195         * src/real/transcendental/cl_R_tanh.cc: Likewise.
196         * src/base/string/cl_st_make0.cc: Remove obsolete MAYBE_INLINE.
197         * src/rational/misc/Makeflags: Help compiler include cl_I_eqhashcode.cc.
198
199 2008-01-15  Bruno Haible  <bruno@clisp.org>
200
201         * doc/cln.texi: Renamed from doc/cln.tex. Add @node lines and @menu
202         lists.
203         * doc/addnodes.el: Remove file.
204         * doc/Makefile.in (${PACKAGE}.texi): Remove rule.
205         (EMACS): Remove variable.
206         (maintainer-clean): Don't remove ${PACKAGE}.texi.
207         Reported by Alexei Sheplyakov <varg@theor.jinr.ru>.
208
209 2008-01-11  Richard B. Kreckel  <kreckel@ginac.de>
210
211         * include/cln/float.h (cos_sin_t, cosh_sinh_t): Add default ctor.
212
213 2008-01-11  Richard B. Kreckel  <kreckel@ginac.de>
214
215         Make some functions more memory efficient:
216         * src/float/transcendental/cl_LF_tran.h (eval_rational_series): The
217         evaluation of streamed rational series may profit from shift-counting Q,
218         too. Introduce a template parameter to determine whether shift-counting
219         is to be used or not.
220         * src/float/transcendental/cl_LF_ratseries_pqb.cc: Introduce template
221         parameter.
222         * src/float/transcendental/cl_LF_ratseries_pqa.cc: Likewise.
223         * src/float/transcendental/cl_LF_ratseries_pqab.cc: Likewise.
224         * src/float/transcendental/cl_LF_ratseries_qa.cc: Likewise.
225         * src/float/transcendental/cl_LF_ratseries_qab.cc: Likewise.
226         * src/float/transcendental/cl_LF_ratseries_q.cc: Likewise, added
227         overload for streamed expansion.
228         * src/float/transcendental/cl_LF_ratseries_qb.cc: Likewise.
229         * src/float/transcendental/cl_LF_ratseries_pq.cc: Introduce template
230         parameter, added overload for streamed expansion using shift-counts.
231         * src/float/transcendental/cl_LF_zeta3.cc: Adapt to above changes.
232         * src/float/transcendental/cl_LF_pi.cc: Likewise.
233         * src/float/transcendental/cl_LF_eulerconst.cc: Likewise.
234         * src/float/transcendental/cl_LF_catalanconst.cc: Likewise.
235         * src/float/transcendental/cl_LF_cossin_aux.cc: Likewise.
236         * src/float/transcendental/cl_LF_coshsinh_aux.cc: Likewise.
237         * src/float/transcendental/cl_LF_atanh_recip.cc: Use streamed series.
238         * src/float/transcendental/cl_LF_atan_recip.cc: Likewise.
239         * src/float/transcendental/cl_LF_exp1.cc: Likewise.
240         * src/float/transcendental/cl_LF_exp_aux.cc: Likewise.
241         * src/float/transcendental/cl_LF_ratseries.cc: Removed.
242
243 2008-01-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
244             Richard B. Kreckel  <kreckel@ginac.de>
245
246         Cater to the fact that g++ 4.3 will use a different naming for
247         the global constructor suffix in shared and static objects.
248         * m4/c++-constructors.m4 (CL_GLOBAL_CONSTRUCTORS): Add test for
249         the global constructor suffix, define CL_GLOBAL_CONSTRUCTOR_SUFFIX_PIC
250         and CL_GLOBAL_CONSTRUCTOR_SUFFIX_NOPIC appropriately.
251         * include/cln/config.h.in: Provide templates to be filled in by
252         configure.
253         * include/cln/modules.h (CL_PROVIDE, CL_REQUIRE): Use
254         CL_GLOBAL_CONSTRUCTOR_SUFFIX_PIC, CL_GLOBAL_CONSTRUCTOR_SUFFIX_NOPIC.
255
256 2007-12-19  Richard B. Kreckel  <kreckel@ginac.de>
257
258         * m4/general.m4 (CL_CANONICAL_HOST_CPU): Force host_cpu=rs6000 for
259          powerpc64 if userland is 32 bit.
260
261 2007-12-18  Richard B. Kreckel  <kreckel@ginac.de>
262
263         * autoconf/ltmain.sh: Update to libtool-1.5.24.
264         * autoconf/config.guess: Likewise.
265         * autoconf/config.sub: Likewise.
266         * m4/libtool.m4: Likewise.
267
268 2007-12-18  Richard B. Kreckel  <kreckel@ginac.de>
269
270         * src/float/transcendental/cl_F_lnx.cc: Make actuallen of type uintC.
271         * src/float/transcendental/cl_F_expx.cc: Likewise.
272         * src/float/transcendental/cl_F_sinhx.cc: Likewise.
273         * src/float/transcendental/cl_F_sinx.cc: Likewise.
274
275 2007-12-17  Richard B. Kreckel  <kreckel@ginac.de>
276
277         Silly workaround for silly bug in gmp.h:
278         * m4/gmp.m4 (CL_GMP_SET_UINTD): Swap #include <gmp.h> and <stdio.h>.
279
280 2007-12-17  Richard B. Kreckel  <kreckel@ginac.de>
281
282         * src/polynomial/elem/cl_UP_GF2.h (gf2_mul_table): define for sparc64.
283
284 2007-12-04  Richard B. Kreckel  <kreckel@ginac.de>
285
286         * include/cln/types.h ([su]intE): 64-bit exponents for MIPS and RS6000.
287
288 2007-12-03  Richard B. Kreckel  <kreckel@ginac.de>
289
290         * src/float/lfloat/cl_LF.h (cl_heap_lfloat): Change len type to uintC.
291
292 2007-11-28  Richard B. Kreckel  <kreckel@ginac.de>
293
294         * include/cln/object.h: Don't redefine cl_word_alignment on sparc64.
295         * src/base/digitseq/cl_asm_sparc64_.cc: Declare use of global
296         register %g2 as scratch register within this file.
297         Reported by Paul Irofti <bulibuta@gmail.com> and Sven Verdoolaege
298         <skimo@kotnet.org>.
299
300 2007-11-03  Richard B. Kreckel  <kreckel@ginac.de>
301
302         * src/base/digitseq/cl_asm_i386_.cc (compare_loop_up, 
303         compare_loop_down): Fix empty ranges.
304
305 2007-10-12  Richard B. Kreckel  <kreckel@ginac.de>
306
307         Fix compilation on CYGWIN:
308         * src/float/transcendental/cl_LF_zeta_int.cc: Avoid leading underscores
309         in variable names.
310         * src/float/transcendental/cl_LF_eulerconst.cc: Likewise.
311         Reported by Chris Bouchard <cbouchrd@uiuc.edu>.
312
313 2007-10-10  Richard B. Kreckel  <kreckel@ginac.de>
314
315         * src/base/cl_low.h: Add missing linefeeds in SPARC 64 inline assembler.
316         * src/base/low/cl_low_div.cc (divu_6464_6464_): Fix a copy-paste typo.
317         Reported by Sven Verdoolaege <skimo@kotnet.org>.
318
319 2007-10-02  Richard B. Kreckel  <kreckel@ginac.de>
320
321         On popular demand (Debian bug #286266, Ubuntu bug #128851):
322         * examples/pi.cc: Output no more than requested number of digits.
323
324 2007-10-01  Richard B. Kreckel  <kreckel@ginac.de>
325
326         * autoconf/config.guess, autoconf/config.sub: updated from automake-1.9.
327
328 2007-09-19  Richard B. Kreckel  <kreckel@ginac.de>
329
330         * doc/cln.tex: Put entire document in @dircategory Mathematics.
331         * doc/Makefile.in: texi2html -split_chapter suddenly uses subdirectory.
332         * Makefile.in: Don't install non-existing cln-config* and cln.m4.
333
334 2007-09-18  Richard B. Kreckel  <kreckel@ginac.de>
335
336         * include/cln/modules.h (CL_JUMP_TO): Use a pc relative jump on m68k.
337         See <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=388000>.
338
339 2007-09-16  Richard B. Kreckel  <kreckel@ginac.de>
340
341         * */*: Convert encoding from ISO 8859-1 to UTF-8.
342
343 2007-09-13  Richard B. Kreckel  <kreckel@ginac.de>
344
345         Truncated binary splitting for even more memory efficiency:
346         * src/float/transcendental/cl_LF_tran.h: Added new overloads. See below.
347         * src/float/transcendental/cl_LF_ratseries_stream_pq.cc: Removed and
348         moved everything to...
349         * src/float/transcendental/cl_LF_ratseries_pq.cc: ...here. Added an
350         overload for truncated expansion.
351         * src/float/transcendental/cl_LF_ratseries_stream_pqa.cc: Removed and
352         moved everything to...
353         * src/float/transcendental/cl_LF_ratseries_pqa.cc: ...here. Added an
354         overload for truncated expansion.
355         * src/float/transcendental/cl_LF_ratseries_stream_pqb.cc: Removed and
356         moved everything to...
357         * src/float/transcendental/cl_LF_ratseries_pqb.cc: ...here. Added an
358         overload for truncated expansion.
359         * src/float/transcendental/cl_LF_ratseries_stream_pqab.cc: Removed and
360         moved everything to...
361         * src/float/transcendental/cl_LF_ratseries_pqab.cc: ...here. Added an
362         overload for truncated expansion.
363         * src/float/transcendental/cl_LF_ratsumseries_pqcd_aux.cc: Added
364         overloads for streamed and truncated expansion.
365         * src/float/transcendental/cl_LF_ratsumseries_pqcd.cc: Likewise.
366         * src/float/transcendental/cl_LF_ratsumseries_stream_pqd_aux.cc: Removed
367         and moved everything to...
368         * src/float/transcendental/cl_LF_ratsumseries_pqd_aux.cc: ...here. Added
369         an overload for truncated expansion.
370         * src/float/transcendental/cl_LF_ratsumseries_stream_pqd.cc: Removed
371         and moved everything to...
372         * src/float/transcendental/cl_LF_ratsumseries_pqd.cc: ...here. Added an
373         overload for truncated expansion.
374         * src/float/transcendental/cl_LF_pi.cc: Use truncated series.
375         * src/float/transcendental/cl_LF_catalanconst.cc: Likewise.
376         * src/float/transcendental/cl_LF_eulerconst.cc: Likewise.
377         * src/float/transcendental/cl_LF_zeta_int.cc: Likewise.
378         * src/float/transcendental/cl_LF_zeta3.cc: Likewise.
379
380 2007-09-07  Richard B. Kreckel  <kreckel@ginac.de>
381
382         More memory efficient Euler-Mascheroni constant:
383         * src/float/transcendental/cl_LF_tran.h (cl_pqd_series_stream): New.
384         * src/float/transcendental/cl_LF_ratsumseries_stream_pqd.cc: New file.
385         * src/float/transcendental/cl_LF_ratsumseries_stream_pqd_aux.cc: New 
386         file.
387         * src/float/transcendental/cl_LF_eulerconst.cc: Compute series
388         coefficients on demand, using a series stream object.
389
390 2007-08-02  Richard B. Kreckel  <kreckel@ginac.de>
391
392         * src/base/digitseq/cl_DS_div.cc (cl_recip_suitable): uintC arguments.
393
394 2007-08-01  Richard B. Kreckel  <kreckel@ginac.de>
395
396         * */*: Remove cl_boolean, cl_true, and cl_false in favor of built-in
397         C++ bool, true, and false.
398
399 2007-07-28  Richard B. Kreckel  <kreckel@ginac.de>
400
401         Remove exception hooks in favor of real C++ exceptions:
402         * include/cln/exception.h: New file...
403         * include/cln/cln.h: ...included here...
404         * include/cln/rational.h: ...and here.
405         * include/cln/abort.h: Removed.
406         * include/cln/integer.h (ash_exception, exquo_exception): Add exception
407         types.
408         * include/cln/float.h (floating_point_exception,
409         floating_point_nan_exception, floating_point_overflow_exception,
410         floating_point_underflow_exception): Likewise.
411         * include/cln/number_io.h (read_number_exception,
412         read_number_bad_syntax_exception, read_number_junk_exception,
413         read_number_eof_exception): Likewise.
414         * include/cln/object.h (CL_DEFINE_CONVERTER): Replace dynamic assertion
415         with a compile-time assertion.
416         * include/cln/GV.h: Replace nonreturning functions with exceptions.
417         * include/cln/modinteger.h: Likewise.
418         * include/cln/SV.h: Likewise.
419         * include/cln/ring.h: Likewise.
420         * include/cln/string.h: Likewise.
421         * include/cln/univpoly.h: Likewise.
422         * src/base/cl_abort.cc: Removed.
423         * src/base/cl_N_err_d0.cc: Removed.
424         * src/base/cl_d0_exception.cc: New file.
425         * src/base/cl_as_err.cc: Removed.
426         * src/base/cl_as_exception.cc: New file.
427         * src/base/cl_notreached.cc: Removed.
428         * src/base/cl_notreached_exception.cc: New file.
429         * src/base/input/cl_read_err_bad.cc: Removed.
430         * src/base/input/cl_read_bad_syntax_exception.cc: New file.
431         * src/base/input/cl_read_err_junk.cc: Removed.
432         * src/base/input/cl_read_junk_exception.cc: New file.
433         * src/base/input/cl_read_err_eof.cc: Removed.
434         * src/base/input/cl_read_eof_exception.cc: New file.
435         * src/base/cl_N.h (cl_as_error): Removed (see cln/exception.h).
436         * src/base/macros.h (NOTREACHED): Throw.
437         * src/base/cl_malloc.cc (xmalloc): Throw.
438         * src/base/digitseq/cl_2DS_div.cc: Throw.
439         * src/base/digitseq/cl_DS_div.cc: Throw.
440         * src/base/digitseq/cl_DS_mul.cc: Throw.
441         * src/base/digitseq/cl_DS_mul_fftc.h: Throw.
442         * src/base/digitseq/cl_DS_mul_fftcs.h: Throw.
443         * src/base/digitseq/cl_DS_mul_fftm.h: Throw.
444         * src/base/digitseq/cl_DS_mul_fftp.h: Throw.
445         * src/base/digitseq/cl_DS_mul_fftp3.h: Throw.
446         * src/base/digitseq/cl_DS_mul_fftp3m.h: Throw.
447         * src/base/digitseq/cl_DS_mul_fftr.h: Throw.
448         * src/base/digitseq/cl_DS_mul_nuss.h: Throw.
449         * src/base/digitseq/cl_DS_recipsqrt.cc: Throw.
450         * src/base/digitseq/cl_DS_sqrt.cc: Throw.
451         * src/base/hash/cl_hash.h: Throw.
452         * src/base/hash/cl_hash1.h: Throw.
453         * src/base/hash/cl_hash1weak.h: Throw.
454         * src/base/hash/cl_hash2.h: Throw.
455         * src/base/hash/cl_hash2weak.h: Throw.
456         * src/base/hash/cl_hashset.h: Throw.
457         * src/base/hash/cl_hashuniq.h: Throw.
458         * src/base/hash/cl_hashuniqweak.h: Throw.
459         * src/base/proplist/cl_pl_add.cc: Throw.
460         * src/base/ring/cl_no_ring.cc: Throw.
461         * src/base/string/cl_spushstring.h: Throw.
462         * src/base/symbol/cl_symbol.cc: Throw.
463         * src/integer/bitwise/cl_I_ash.h: Removed (see cln/integer.h.)
464         * src/integer/bitwise/cl_I_asherr.cc: Removed.
465         * src/integer/bitwise/cl_I_ash_exception.cc: New file.
466         * src/integer/division/cl_I_exquoerr.cc: Removed.
467         * src/integer/division/cl_I_exquo_exception.cc: New file.
468         * src/integer/cl_I.h: Throw.
469         * src/integer/division/cl_I_exquopos.cc: Throw.
470         * src/integer/bitwise/cl_I_logbitp_I.cc: Throw.
471         * src/integer/bitwise/cl_I_ash.cc: Throw.
472         * src/integer/bitwise/cl_I_ash_I.cc: Throw.
473         * src/integer/division/cl_I_exquo.cc: Throw.
474         * src/integer/gcd/cl_I_gcd_aux2.cc: Throw.
475         * src/integer/conv/cl_I_to_L.cc: Throw.
476         * src/integer/conv/cl_I_to_Q.cc: Throw.
477         * src/integer/conv/cl_I_to_UL.cc: Throw.
478         * src/integer/conv/cl_I_to_UQ.cc: Throw.
479         * src/integer/conv/cl_I_to_digits.cc: Throw.
480         * src/integer/elem/cl_I_div.cc: Throw.
481         * src/integer/algebraic/cl_I_sqrt.cc: Throw.
482         * src/integer/input/cl_I_read.cc: Throw.
483         * src/integer/input/cl_I_read_stream.cc: Throw.
484         * src/integer/misc/cl_I_as.cc: Throw.
485         * src/rational/elem/cl_RA_from_I_I_div.cc: Throw.
486         * src/rational/elem/cl_RA_recip.cc: Throw.
487         * src/rational/input/cl_RA_read.cc: Throw.
488         * src/rational/input/cl_RA_read_stream.cc: Throw.
489         * src/rational/input/cl_RA_readparsed.cc: Throw.
490         * src/rational/misc/cl_RA_as.cc: Throw.
491         * src/float/base/cl_F_err_nan.cc: Removed.
492         * src/float/base/cl_F_nan_exception.cc: New file.
493         * src/float/base/cl_F_err_un.cc: Removed.
494         * src/float/base/cl_F_underflow_exception.cc: New file.
495         * src/float/base/cl_F_err_ov.cc: Removed.
496         * src/float/base/cl_F_overflow_exception.cc: New file.
497         * src/float/cl_F.h (cl_error_floating_point_nan,
498         cl_error_floating_point_overflow, cl_error_floating_point_underflow):
499         Removed (see cln/float.h.)
500         * src/float/sfloat/cl_SF.h: Throw.
501         * src/float/sfloat/elem/cl_SF_div.cc: Throw.
502         * src/float/sfloat/elem/cl_SF_from_RA.cc: Throw.
503         * src/float/sfloat/elem/cl_SF_scale.cc: Throw.
504         * src/float/sfloat/elem/cl_SF_scale_I.cc: Throw.
505         * src/float/sfloat/misc/cl_SF_as.cc: Throw.
506         * src/float/ffloat/cl_FF.h: Throw.
507         * src/float/ffloat/conv/cl_FF_from_float.cc: Throw.
508         * src/float/ffloat/elem/cl_FF_div.cc: Throw.
509         * src/float/ffloat/elem/cl_FF_from_RA.cc: Throw.
510         * src/float/ffloat/elem/cl_FF_scale.cc: Throw.
511         * src/float/ffloat/elem/cl_FF_scale_I.cc: Throw.
512         * src/float/ffloat/misc/cl_FF_as.cc: Throw.
513         * src/float/dfloat/cl_DF.h: Throw.
514         * src/float/dfloat/conv/cl_DF_from_double.cc: Throw.
515         * src/float/dfloat/elem/cl_DF_div.cc: Throw.
516         * src/float/dfloat/elem/cl_DF_from_RA.cc: Throw.
517         * src/float/dfloat/elem/cl_DF_scale.cc: Throw.
518         * src/float/dfloat/elem/cl_DF_scale_I.cc: Throw.
519         * src/float/dfloat/misc/cl_DF_as.cc: Throw.
520         * src/float/lfloat/algebraic/cl_LF_sqrt.cc: Throw.
521         * src/float/lfloat/elem/cl_LF_1plus.cc: Throw.
522         * src/float/lfloat/elem/cl_LF_I_div.cc: Throw.
523         * src/float/lfloat/elem/cl_LF_I_mul.cc: Throw.
524         * src/float/lfloat/elem/cl_LF_div.cc: Throw.
525         * src/float/lfloat/elem/cl_LF_from_I.cc: Throw.
526         * src/float/lfloat/elem/cl_LF_mul.cc: Throw.
527         * src/float/lfloat/elem/cl_LF_scale.cc: Throw.
528         * src/float/lfloat/elem/cl_LF_scale_I.cc: Throw.
529         * src/float/lfloat/elem/cl_LF_square.cc: Throw.
530         * src/float/lfloat/misc/cl_LF_as.cc: Throw.
531         * src/float/lfloat/misc/cl_LF_shorten.cc: Throw.
532         * src/float/lfloat/misc/cl_LF_shortenrel.cc: Throw.
533         * src/float/lfloat/misc/cl_LF_shortenwith.cc: Throw.
534         * src/float/input/cl_F_read.cc: Throw.
535         * src/float/input/cl_F_read_stream.cc: Throw.
536         * src/float/misc/cl_F_as.cc: Throw.
537         * src/float/misc/cl_F_shortenrel.cc: Throw.
538         * src/float/transcendental/cl_LF_coshsinh_aux.cc: Throw.
539         * src/float/transcendental/cl_LF_cossin_aux.cc: Throw.
540         * src/float/transcendental/cl_LF_exp_aux.cc: Throw.
541         * src/float/transcendental/cl_LF_ratseries_a.cc: Throw.
542         * src/float/transcendental/cl_LF_ratseries_ab.cc: Throw.
543         * src/float/transcendental/cl_LF_ratseries_b.cc: Throw.
544         * src/float/transcendental/cl_LF_ratseries_p.cc: Throw.
545         * src/float/transcendental/cl_LF_ratseries_pa.cc: Throw.
546         * src/float/transcendental/cl_LF_ratseries_pab.cc: Throw.
547         * src/float/transcendental/cl_LF_ratseries_pb.cc: Throw.
548         * src/float/transcendental/cl_LF_ratseries_pq.cc: Throw.
549         * src/float/transcendental/cl_LF_ratseries_pqa.cc: Throw.
550         * src/float/transcendental/cl_LF_ratseries_pqab.cc: Throw.
551         * src/float/transcendental/cl_LF_ratseries_pqb.cc: Throw.
552         * src/float/transcendental/cl_LF_ratseries_q.cc: Throw.
553         * src/float/transcendental/cl_LF_ratseries_qa.cc: Throw.
554         * src/float/transcendental/cl_LF_ratseries_qab.cc: Throw.
555         * src/float/transcendental/cl_LF_ratseries_qb.cc: Throw.
556         * src/float/transcendental/cl_LF_ratseries_stream_pq.cc: Throw.
557         * src/float/transcendental/cl_LF_ratseries_stream_pqa.cc: Throw.
558         * src/float/transcendental/cl_LF_ratseries_stream_pqab.cc: Throw.
559         * src/float/transcendental/cl_LF_ratseries_stream_pqb.cc: Throw.
560         * src/float/transcendental/cl_LF_ratsumseries_pqcd_aux.cc: Throw.
561         * src/float/transcendental/cl_LF_ratsumseries_pqd.cc: Throw.
562         * src/float/transcendental/cl_LF_ratsumseries_pqd_aux.cc: Throw.
563         * src/float/transcendental/cl_LF_zeta_int.cc: Throw.
564         * src/real/elem/cl_R_div.cc: Throw.
565         * src/real/format-output/cl_fmt_cardinal.cc: Throw.
566         * src/real/format-output/cl_fmt_newroman.cc: Throw.
567         * src/real/format-output/cl_fmt_oldroman.cc: Throw.
568         * src/real/input/cl_R_read.cc: Throw.
569         * src/real/input/cl_R_read_stream.cc: Throw.
570         * src/real/misc/cl_R_as.cc: Throw.
571         * src/real/random/cl_R_random.cc: Throw.
572         * src/real/transcendental/cl_R_atan2.cc: Throw.
573         * src/real/transcendental/cl_R_log.cc: Throw.
574         * src/complex/input/cl_N_read.cc: Throw.
575         * src/complex/input/cl_N_read_stream.cc: Throw.
576         * src/complex/misc/cl_N_as.cc: Throw.
577         * src/complex/transcendental/cl_C_atanh_aux.cc: Throw.
578         * src/complex/transcendental/cl_C_expt_C.cc: Throw.
579         * src/complex/transcendental/cl_C_log.cc: Throw.
580         * src/complex/transcendental/cl_C_log2.cc: Throw.
581         * src/numtheory/cl_nt_cornacchia1.cc: Throw.
582         * src/numtheory/cl_nt_cornacchia4.cc: Throw.
583         * src/numtheory/cl_nt_isprobprime.cc: Throw.
584         * src/numtheory/cl_nt_jacobi.cc: Throw.
585         * src/numtheory/cl_nt_jacobi_low.cc: Throw.
586         * src/numtheory/cl_nt_sqrtmodp.cc: Throw.
587         * src/modinteger/cl_MI.cc: Throw.
588         * src/modinteger/cl_MI_int.h: Throw.
589         * src/modinteger/cl_MI_montgom.h: Throw.
590         * src/modinteger/cl_MI_pow2.h: Throw.
591         * src/modinteger/cl_MI_rshift.cc: Throw.
592         * src/modinteger/cl_MI_std.h: Throw.
593         * src/polynomial/elem/cl_UP_GF2.h: Throw.
594         * src/polynomial/elem/cl_UP_MI.h: Throw.
595         * src/polynomial/elem/cl_UP_gen.h: Throw.
596         * src/polynomial/elem/cl_UP_named.cc: Throw.
597         * src/polynomial/elem/cl_UP_no_ring.cc (uninitialized_error, 
598         uninitialized_ring): Removed (see cln/ring.h.)
599         * src/polynomial/elem/cl_UP_number.h: Throw.
600         * src/polynomial/elem/cl_UP_unnamed.cc: Throw.
601         * src/vector/cl_GV_I.cc: Throw.
602         * src/vector/cl_GV_number.cc: Throw.
603         * tests/timediv2adic-compare.cc: Use default abort(), not cl_abort().
604         * tests/timeprint-compare.cc: Likewise.
605         * tests/timerecip2adic-compare.cc: Likewise.
606         * doc/cln.tex: Document the exception classes.
607         * examples/contfrac.cc: Use try/catch instead of setjmp/longjmp.
608         * INSTALL: undocument -fno-exceptions.
609         * README: Add exceptions to list of used C++ features.
610
611 2007-06-20  Richard B. Kreckel  <kreckel@ginac.de>
612
613         * cln.spec.in (Source0): Package is bzip2-compressed.
614         Reported by Markus Grabner <grabner@icg.tugraz.at>.
615
616 2007-05-31  Richard B. Kreckel  <kreckel@ginac.de>
617
618         * include/cln/integer.h (cl_I_to_E, cl_I_to_UE): New functions.
619         * src/float/transcendental/cl_LF_exp_aux.cc: Make lq argument an uintE.
620         * src/float/transcendental/cl_LF_cossin_aux.cc: Likewise.
621         * src/float/transcendental/cl_LF_coshsinh_aux.cc: Likewise.
622         * src/float/transcendental/cl_F_tran.h: Change declaration of lq.
623         * src/float/transcendental/cl_F_lnx.cc: Fix some exponent types.
624         * src/float/transcendental/cl_F_expx.cc: Likewise.
625         * src/float/transcendental/cl_F_sinh.cc: Likewise.
626         * src/float/transcendental/cl_F_atanx.cc: Likewise.
627         * src/float/transcendental/cl_F_coshsinh.cc: Likewise.
628         * src/float/transcendental/cl_LF_cossin.cc: Likewise.
629         * src/float/transcendental/cl_LF_coshsinh.cc: Likewise.
630
631 2007-04-09  Richard B. Kreckel  <kreckel@ginac.de>
632
633         More memory efficient constants:
634         * src/float/transcendental/cl_LF_pi.cc (compute_pi_ramanujan_163_fast):
635         Compute series coefficients on demand, using a series stream object.
636         * src/float/transcendental/cl_LF_zeta3.cc (zeta3): Likewise.
637         * src/float/transcendental/cl_LF_catalanconst.cc
638         (compute_catalanconst_ramanujan_fast): Likewise.
639         (compute_catalanconst_lupas): New function.
640         (compute_catalanconst): Simplify, based on new benchmark.
641
642 2007-04-02  Alexei Sheplyakov  <varg@theor.jinr.ru>
643
644         Debian Bug#412103:
645         * cln.pc.in: list -lgmp in Libs.private instead of in Libs.
646         * doc/cln.tex: Undocument cln-config, properly document pkg-config.
647         * cln-config.1.in: Remove.
648         * cln-config.in: Remove.
649         * cln.m4: Remove.
650         * configure.ac: Don't output cln-config and cln-config.1.
651
652 2006-12-24  Bruno Haible  <bruno@clisp.org>
653
654         Make autoconfiguration work with gcc-4.3 snapshots.
655         * autoconf/intparam.c (main1): Rename get_integer_bitsize to
656         get_unsigned_integer_bitsize. New macro get_signed_integer_bitsize.
657
658 2006-12-19  Bruno Haible  <bruno@clisp.org>
659
660         * autoconf/intparam.c (main): Use 'return', not exit().
661         * autoconf/floatparam.c (main): Likewise.
662         Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
663
664 2006-12-11  Richard B. Kreckel  <kreckel@ginac.de>
665
666         Extend the exponent range from 32 bits to 64 bits on selected platforms.
667         * include/cln/number.h: Add signatures for operations with long long.
668         * include/cln/complex_class.h: Likewise.
669         * include/cln/real_class.h: Likewise.
670         * include/cln/real.h: Likewise.
671         * include/cln/rational_class.h: Likewise.
672         * include/cln/rational.h: Likewise.
673         * include/cln/integer_class.h: Likewise.
674         * include/cln/integer.h: Likewise.
675         * include/cln/float.h: Likewise.
676         * include/cln/lfloat.h: Likewise.
677         * include/cln/types.h (sintE and uintE): New types for exponents.
678         * include/cln/*float.h: Use the new types for exponents.
679         * include/cln/floatformat.h (float_format_t): Make underlying type
680         compatible with sintE.
681         * doc/cln.tex: Document changed float_exponent return value.
682         * src/float/cl_F.h: Likewise.
683         * src/float/ffloat/misc/cl_FF_exponent.cc: Likewise.
684         * src/float/input/cl_F_read.cc: Likewise.
685         * src/float/lfloat/cl_LF.h: Likewise.
686         * src/float/lfloat/cl_LF_impl.h: Likewise.
687         * src/float/lfloat/algebraic/cl_LF_sqrt.cc: Likewise.
688         * src/float/lfloat/elem/cl_LF_1plus.cc: Likewise.
689         * src/float/lfloat/elem/cl_LF_I_div.cc: Likewise.
690         * src/float/lfloat/elem/cl_LF_I_mul.cc: Likewise.
691         * src/float/lfloat/elem/cl_LF_compare.cc: Likewise.
692         * src/float/lfloat/elem/cl_LF_div.cc: Likewise.
693         * src/float/lfloat/elem/cl_LF_from_I.cc: Likewise.
694         * src/float/lfloat/elem/cl_LF_fround.cc: Likewise.
695         * src/float/lfloat/elem/cl_LF_ftrunc.cc: Likewise.
696         * src/float/lfloat/elem/cl_LF_futrunc.cc: Likewise.
697         * src/float/lfloat/elem/cl_LF_mul.cc: Likewise.
698         * src/float/lfloat/elem/cl_LF_scale.cc: Likewise.
699         * src/float/lfloat/elem/cl_LF_scale_I.cc: Likewise.
700         * src/float/lfloat/elem/cl_LF_square.cc: Likewise.
701         * src/float/lfloat/elem/cl_LF_to_I.cc: Likewise.
702         * src/float/lfloat/misc/cl_LF_decode.cc: Likewise.
703         * src/float/lfloat/misc/cl_LF_exponent.cc: Likewise.
704         * src/float/lfloat/misc/cl_LF_idecode.cc: Likewise.
705         * src/float/lfloat/misc/cl_LF_shortenrel.cc: Likewise.
706         * src/float/lfloat/misc/cl_LF_shortenwith.cc: Likewise.
707         * src/float/misc/cl_F_decode.cc: Likewise.
708         * src/float/misc/cl_F_exponent.cc: Likewise.
709         * src/float/misc/cl_F_shortenrel.cc: Likewise.
710         * src/float/misc/cl_float_format.cc: Likewise.
711         * src/float/output/cl_F_dprint.cc: Likewise.
712         * src/float/sfloat/misc/cl_SF_exponent.cc: Likewise.
713         * src/float/transcendental/cl_F_atanhx.cc: Likewise.
714         * src/float/transcendental/cl_F_atanx.cc: Likewise.
715         * src/float/transcendental/cl_F_cosh.cc: Likewise.
716         * src/float/transcendental/cl_F_expx.cc: Likewise.
717         * src/float/transcendental/cl_F_lnx.cc: Likewise.
718         * src/float/transcendental/cl_F_sinhx.cc: Likewise.
719         * src/float/transcendental/cl_F_sinx.cc: Likewise.
720         * src/float/transcendental/cl_LF_pi.cc: Likewise.
721         * src/integer/cl_I.h: Likewise.
722         * src/complex/algebraic/cl_LF_hypot.cc: Likewise.
723         * src/complex/elem/division/cl_C_LF_recip.cc: Likewise.
724         * src/float/dfloat/misc/cl_DF_exponent.cc: Likewise.
725         * src/integer/conv/cl_I_from_Q2.cc: Added.
726         * src/base/cl_low.h (isqrtC): New function, for 64 bit falls back to...
727         * src/base/low/cl_low_isqrt.cc (isqrt): ...this new implementation.
728         * src/base/cl_macros.h (bitc): Make sure 64 bit is used if required by
729         exponent operations.
730         * examples/pi.cc: Support more than 646456614 decimal digits.
731
732 2006-11-02  Richard B. Kreckel  <kreckel@ginac.de>
733
734         * src/base/digitseq/cl_DS.h: #undef DS, needed for i386-Solaris.
735
736 2006-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
737
738         * tests/Makefile.in (VPATH): Fix syntax error.
739
740 2006-09-14  Richard B. Kreckel  <kreckel@ginac.de>
741         
742         * examples/perfnum.cc: update to presumed 44th Mersenne prime.
743
744 2006-08-15  Richard B. Kreckel  <kreckel@ginac.de>
745
746         * tests/Makefile.in: MinGW support for make check
747         (Patch by Sheplyakov Alexei <varg@theor.jinr.ru> to add ${EXEEXT}).
748         * Makefile.in: Convert from $(VAR) to ${VAR} syntax.
749         * benchmarks/Makefile.in: Likewise.
750         * doc/Makefile.in: Likewise.
751         * examples/Makefile.in: Likewise.
752         * src/Makefile.in: Likewise.
753         * tests/Makefile.in: Likewise.
754
755 2006-08-06  Richard B. Kreckel  <kreckel@ginac.de>
756
757         * configure.ac: Re-enable shared lib on non-MinGW platforms, sigh.
758
759 2006-08-04  Sheplyakov Alexei  <varg@theor.jinr.ru>
760
761         * configure.ac: Disable shared lib on MinGW.
762
763 2006-08-03  Sheplyakov Alexei  <varg@theor.jinr.ru>
764
765         * m4/param.m4: Add support for MinGW.
766         * src/base/random/cl_random_from.cc: Fix for last patch.
767
768 2006-07-23  Sheplyakov Alexei  <varg@theor.jinr.ru>
769
770         * src/base/random/cl_random_from.cc: Add support for MinGW.
771
772 2006-06-13  Richard B. Kreckel  <kreckel@ginac.de>
773
774         * m4/general.m4 (CL_CANONICAL_HOST_CPU): Force host_cpu=i386 for x86_64
775         if userland is 32 bit.
776         * include/cln/config.h.in: Simplify __x86_64__ selection.
777         * src/base/digitseq/cl_asm_x86_64_.cc: Remove.
778
779 2006-06-09  Richard B. Kreckel  <kreckel@ginac.de>
780
781         * src/base/digitseq/cl_DS.h (struct DS): Change len type to uintC.
782
783 2006-05-30  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
784
785         * m4/gettimeofday.m4 (CL_GETTIMEOFDAY): Fix M4 quoting.
786
787 2006-05-20  Bruno Haible  <bruno@clisp.org>
788
789         * src/base/random/cl_random_from.cc: Treat FreeBSD, NetBSD like other
790         Unix platforms.
791
792 2006-05-07  Richard B. Kreckel  <kreckel@ginac.de>
793
794         * include/cln/modules.h (CL_JUMP_TO): Fix for Intel Mac.
795
796 2006-04-25  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
797
798         Prepare for autoconf-2.60.
799         * Makefile.in (datarootdir): New variable.
800         * src/Makefile.in (datarootdir): New variable.
801         * doc/Makefile.in (datarootdir): New variable.
802
803 2006-04-25  Bruno Haible  <bruno@clisp.org>
804             Richard B. Kreckel  <kreckel@ginac.de>
805
806         Make it theoretically possible to use bignums and long-floats with
807         more than 2^32 significant digits or bits.
808         * doc/cln.tex (logcount): Change return type to uintC.
809         (struct cl_byte): Change elements to uintC.
810         (integer_length, ord2, power2p): Change return type to uintC.
811         (scale_float): Change argument type to sintC.
812         (float_digits, float_precision): Change return type to uintC.
813         * examples/atan_recip.cc: Use uintC instead of uintL where appropriate.
814         * examples/atanh_recip.cc: Likewise.
815         * include/cln/GV.h: Likewise.
816         * include/cln/GV_complex.h: Likewise.
817         * include/cln/GV_integer.h: Likewise.
818         * include/cln/GV_modinteger.h: Likewise.
819         * include/cln/GV_number.h: Likewise.
820         * include/cln/GV_rational.h: Likewise.
821         * include/cln/GV_real.h: Likewise.
822         * include/cln/SV.h: Likewise.
823         * include/cln/SV_complex.h: Likewise.
824         * include/cln/SV_integer.h: Likewise.
825         * include/cln/SV_number.h: Likewise.
826         * include/cln/SV_rational.h: Likewise.
827         * include/cln/SV_real.h: Likewise.
828         * include/cln/SV_ringelt.h: Likewise.
829         * include/cln/dfloat.h: Likewise.
830         * include/cln/ffloat.h: Likewise.
831         * include/cln/float.h: Likewise.
832         * include/cln/integer.h: Likewise.
833         * include/cln/lfloat.h: Likewise.
834         * include/cln/modinteger.h: Likewise.
835         * include/cln/sfloat.h: Likewise.
836         * src/base/cl_low.h (integerlengthC): New macro.
837         * src/base/digitseq/cl_2DS_div.cc: Use uintC instead of uintL where
838         appropriate.
839         * src/base/digitseq/cl_2DS_recip.cc: Likewise.
840         * src/base/digitseq/cl_DS.h: Likewise.
841         * src/base/digitseq/cl_DS_mul.c: Likewise.
842         * src/base/digitseq/cl_DS_mul_fftc.h: Likewise.
843         * src/base/digitseq/cl_DS_mul_fftcs.h: Likewise.
844         * src/base/digitseq/cl_DS_mul_fftm.h: Likewise.
845         * src/base/digitseq/cl_DS_mul_fftp.h: Likewise.
846         * src/base/digitseq/cl_DS_mul_fftp3.h: Likewise.
847         * src/base/digitseq/cl_DS_mul_fftp3m.h: Likewise.
848         * src/base/digitseq/cl_DS_mul_fftr.h: Likewise.
849         * src/base/digitseq/cl_DS_mul_kara.h: Likewise.
850         * src/base/digitseq/cl_DS_mul_nuss.h: Likewise.
851         * src/base/digitseq/cl_DS_recip.cc: Likewise.
852         * src/base/digitseq/cl_DS_recipsqrt.cc: Likewise.
853         * src/base/digitseq/cl_DS_sqrt.cc: Likewise.
854         * src/base/digitseq/cl_DS_trandom.cc: Likewise.
855         * src/complex/input/cl_N_read.cc: Likewise.
856         * src/complex/transcendental/cl_C_asinh_aux.cc: Likewise.
857         * src/complex/transcendental/cl_C_expt_C.cc: Likewise.
858         * src/float/cl_F.h: Likewise.
859         * src/float/conv/cl_F_from_F_f.cc: Likewise.
860         * src/float/conv/cl_F_from_I_f.cc: Likewise.
861         * src/float/conv/cl_F_from_RA_f.cc: Likewise.
862         * src/float/dfloat/conv/cl_I_to_double.cc: Likewise.
863         * src/float/dfloat/conv/cl_RA_to_double.cc: Likewise.
864         * src/float/dfloat/elem/cl_DF_from_I.cc: Likewise.
865         * src/float/dfloat/elem/cl_DF_from_RA.cc: Likewise.
866         * src/float/dfloat/elem/cl_DF_scale.cc: Likewise.
867         * src/float/dfloat/misc/cl_DF_digits.cc: Likewise.
868         * src/float/dfloat/misc/cl_DF_precision.cc: Likewise.
869         * src/float/elem/cl_F_scale.cc: Likewise.
870         * src/float/ffloat/conv/cl_I_to_float.cc: Likewise.
871         * src/float/ffloat/conv/cl_RA_to_float.cc: Likewise.
872         * src/float/ffloat/elem/cl_FF_from_I.cc: Likewise.
873         * src/float/ffloat/elem/cl_FF_from_RA.cc: Likewise.
874         * src/float/ffloat/elem/cl_FF_scale.cc: Likewise.
875         * src/float/ffloat/misc/cl_FF_digits.cc: Likewise.
876         * src/float/ffloat/misc/cl_FF_precision.cc: Likewise.
877         * src/float/input/cl_F_read.cc: Likewise.
878         * src/float/lfloat/algebraic/cl_LF_sqrt.cc: Likewise.
879         * src/float/lfloat/elem/cl_LF_1plus.cc: Likewise.
880         * src/float/lfloat/elem/cl_LF_I_div.cc: Likewise.
881         * src/float/lfloat/elem/cl_LF_I_mul.cc: Likewise.
882         * src/float/lfloat/elem/cl_LF_div.cc: Likewise.
883         * src/float/lfloat/elem/cl_LF_from_I.cc: Likewise.
884         * src/float/lfloat/elem/cl_LF_from_RA.cc: Likewise.
885         * src/float/lfloat/elem/cl_LF_fround.cc: Likewise.
886         * src/float/lfloat/elem/cl_LF_ftrunc.cc: Likewise.
887         * src/float/lfloat/elem/cl_LF_futrunc.cc: Likewise.
888         * src/float/lfloat/elem/cl_LF_scale.cc: Likewise.
889         * src/float/lfloat/elem/cl_LF_to_I.cc: Likewise.
890         * src/float/lfloat/misc/cl_LF_digits.cc: Likewise.
891         * src/float/lfloat/misc/cl_LF_idecode.cc: Likewise.
892         * src/float/lfloat/misc/cl_LF_leninc.cc: Likewise.
893         * src/float/lfloat/misc/cl_LF_lenincx.cc: Likewise.
894         * src/float/lfloat/misc/cl_LF_precision.cc: Likewise.
895         * src/float/lfloat/misc/cl_LF_shortenrel.cc: Likewise.
896         * src/float/lfloat/misc/cl_LF_shortenwith.cc: Likewise.
897         * src/float/misc/cl_F_digits.cc: Likewise.
898         * src/float/misc/cl_F_epsneg.cc: Likewise.
899         * src/float/misc/cl_F_epspos.cc: Likewise.
900         * src/float/misc/cl_F_leastneg.cc: Likewise.
901         * src/float/misc/cl_F_leastpos.cc: Likewise.
902         * src/float/misc/cl_F_mostneg.cc: Likewise.
903         * src/float/misc/cl_F_mostpos.cc: Likewise.
904         * src/float/misc/cl_F_precision.cc: Likewise.
905         * src/float/misc/cl_F_rational.cc: Likewise.
906         * src/float/misc/cl_F_shortenrel.cc: Likewise.
907         * src/float/output/cl_F_dprint.cc: Likewise.
908         * src/float/random/cl_F_random.cc: Likewise.
909         * src/float/sfloat/elem/cl_SF_from_I.cc: Likewise.
910         * src/float/sfloat/elem/cl_SF_from_RA.cc: Likewise.
911         * src/float/sfloat/elem/cl_SF_scale.cc: Likewise.
912         * src/float/sfloat/misc/cl_SF_digits.cc: Likewise.
913         * src/float/sfloat/misc/cl_SF_precision.cc: Likewise.
914         * src/float/transcendental/cl_F_atanhx.cc: Likewise.
915         * src/float/transcendental/cl_F_atanx.cc: Likewise.
916         * src/float/transcendental/cl_F_catalanconst_f.cc: Likewise.
917         * src/float/transcendental/cl_F_cos.cc: Likewise.
918         * src/float/transcendental/cl_F_cosh.cc: Likewise.
919         * src/float/transcendental/cl_F_coshsinh.cc: Likewise.
920         * src/float/transcendental/cl_F_cossin.cc: Likewise.
921         * src/float/transcendental/cl_F_eulerconst_f.cc: Likewise.
922         * src/float/transcendental/cl_F_exp1_f.cc: Likewise.
923         * src/float/transcendental/cl_F_expx.cc: Likewise.
924         * src/float/transcendental/cl_F_ln10_f.cc: Likewise.
925         * src/float/transcendental/cl_F_ln2_f.cc: Likewise.
926         * src/float/transcendental/cl_F_lnx.cc: Likewise.
927         * src/float/transcendental/cl_F_pi_f.cc: Likewise.
928         * src/float/transcendental/cl_F_sin.cc: Likewise.
929         * src/float/transcendental/cl_F_sinh.cc: Likewise.
930         * src/float/transcendental/cl_F_sinhx.cc: Likewise.
931         * src/float/transcendental/cl_F_sinx.cc: Likewise.
932         * src/float/transcendental/cl_F_tran.h: Likewise.
933         * src/float/transcendental/cl_F_zeta_int_f.cc: Likewise.
934         * src/float/transcendental/cl_LF_atan_recip.cc: Likewise.
935         * src/float/transcendental/cl_LF_atanh_recip.cc: Likewise.
936         * src/float/transcendental/cl_LF_catalanconst.cc: Likewise.
937         * src/float/transcendental/cl_LF_coshsinh_aux.cc: Likewise.
938         * src/float/transcendental/cl_LF_cossin_aux.cc: Likewise.
939         * src/float/transcendental/cl_LF_eulerconst.cc: Likewise.
940         * src/float/transcendental/cl_LF_exp1.cc: Likewise.
941         * src/float/transcendental/cl_LF_exp_aux.cc: Likewise.
942         * src/float/transcendental/cl_LF_pi.cc: Likewise.
943         * src/float/transcendental/cl_LF_ratseries.cc: Likewise.
944         * src/float/transcendental/cl_LF_ratseries_.cc: Likewise.
945         * src/float/transcendental/cl_LF_ratseries_a.cc: Likewise.
946         * src/float/transcendental/cl_LF_ratseries_ab.cc: Likewise.
947         * src/float/transcendental/cl_LF_ratseries_b.cc: Likewise.
948         * src/float/transcendental/cl_LF_ratseries_p.cc: Likewise.
949         * src/float/transcendental/cl_LF_ratseries_pa.cc: Likewise.
950         * src/float/transcendental/cl_LF_ratseries_pab.cc: Likewise.
951         * src/float/transcendental/cl_LF_ratseries_pb.cc: Likewise.
952         * src/float/transcendental/cl_LF_ratseries_pq.cc: Likewise.
953         * src/float/transcendental/cl_LF_ratseries_pqa.cc: Likewise.
954         * src/float/transcendental/cl_LF_ratseries_pqab.cc: Likewise.
955         * src/float/transcendental/cl_LF_ratseries_pqb.cc: Likewise.
956         * src/float/transcendental/cl_LF_ratseries_q.cc: Likewise.
957         * src/float/transcendental/cl_LF_ratseries_qa.cc: Likewise.
958         * src/float/transcendental/cl_LF_ratseries_qab.cc: Likewise.
959         * src/float/transcendental/cl_LF_ratseries_qb.cc: Likewise.
960         * src/float/transcendental/cl_LF_ratseries_stream_pq.cc: Likewise.
961         * src/float/transcendental/cl_LF_ratseries_stream_pqa.cc: Likewise.
962         * src/float/transcendental/cl_LF_ratseries_stream_pqab.cc: Likewise.
963         * src/float/transcendental/cl_LF_ratseries_stream_pqb.cc: Likewise.
964         * src/float/transcendental/cl_LF_ratsumseries_pqcd.cc: Likewise.
965         * src/float/transcendental/cl_LF_ratsumseries_pqcd_aux.cc: Likewise.
966         * src/float/transcendental/cl_LF_ratsumseries_pqd.cc: Likewise.
967         * src/float/transcendental/cl_LF_ratsumseries_pqd_aux.cc: Likewise.
968         * src/float/transcendental/cl_LF_tran.h: Likewise.
969         * src/float/transcendental/cl_LF_zeta3.cc: Likewise.
970         * src/float/transcendental/cl_LF_zeta_int.cc: Likewise.
971         * src/integer/algebraic/cl_I_rootp_I.cc: Likewise.
972         * src/integer/algebraic/cl_I_rootp_aux.cc: Likewise.
973         * src/integer/bitwise/cl_I_ash.cc: Likewise.
974         * src/integer/bitwise/cl_I_ash_I.cc: Likewise.
975         * src/integer/bitwise/cl_I_byte.h: Likewise.
976         * src/integer/bitwise/cl_I_fullbyte.cc: Likewise.
977         * src/integer/bitwise/cl_I_ilength.cc: Likewise.
978         * src/integer/bitwise/cl_I_ldb.cc: Likewise.
979         * src/integer/bitwise/cl_I_ldbtest.cc: Likewise.
980         * src/integer/bitwise/cl_I_ldbx.cc: Likewise.
981         * src/integer/bitwise/cl_I_ldbxtest.cc: Likewise.
982         * src/integer/bitwise/cl_I_logbitp.cc: Likewise.
983         * src/integer/bitwise/cl_I_logbitp_I.cc: Likewise.
984         * src/integer/bitwise/cl_I_logcount.cc: Likewise.
985         * src/integer/bitwise/cl_I_mkf.cc: Likewise.
986         * src/integer/bitwise/cl_I_mkfx.cc: Likewise.
987         * src/integer/cl_I.h: Likewise.
988         * src/integer/conv/cl_I_to_digits.cc: Likewise.
989         * src/integer/conv/cl_I_digits_need.cc: Likewise.
990         * src/integer/conv/cl_I_from_digits.cc: Likewise.
991         * src/integer/gcd/cl_I_gcd.cc: Likewise.
992         * src/integer/gcd/cl_I_xgcd.cc: Likewise.
993         * src/integer/misc/cl_I_eqhashcode.cc: Likewise.
994         * src/integer/misc/cl_I_ord2.cc: Likewise.
995         * src/integer/misc/cl_I_power2p.cc: Likewise.
996         * src/integer/output/cl_I_cached_power.h (cached_power_table): allow
997         for 40 elements.
998         * src/integer/output/cl_I_decstring.cc: Use uintC instead of uintL
999         where appropriate.
1000         * src/integer/output/cl_I_print.cc: Likewise.
1001         * src/integer/output/cl_I_print_string.cc: Likewise.
1002         * src/modinteger/cl_MI.cc: Likewise.
1003         * src/modinteger/cl_MI_lshift.cc: Likewise.
1004         * src/modinteger/cl_MI_montgom.h: Likewise.
1005         * src/modinteger/cl_MI_pow2.h: Likewise.
1006         * src/modinteger/cl_MI_pow2m1.h: Likewise.
1007         * src/modinteger/cl_MI_pow2p1.h: Likewise.
1008         * src/modinteger/cl_MI_rshift.cc: Likewise.
1009         * src/modinteger/cl_MI_std.h: Likewise.
1010         * src/numtheory/cl_IF_millerrabin.cc: Likewise.
1011         * src/numtheory/cl_nt_isprobprime.cc: Likewise.
1012         * src/numtheory/cl_nt_sqrtmodp.cc: Likewise.
1013         * src/polynomial/elem/cl_UP_GF2.h: Likewise.
1014         * src/real/conv/cl_F_from_R_f.cc: Likewise.
1015         * src/real/format-output/cl_fmt_floatstring.cc: Likewise.
1016         * src/real/input/cl_R_read.cc: Likewise.
1017         * src/vector/cl_GV_I.cc: Likewise.
1018         * src/vector/cl_GV_I_copy.cc: Likewise.
1019         * src/vector/cl_GV_number.cc: Likewise.
1020         * src/vector/cl_GV_number_copy.cc: Likewise.
1021         * src/vector/cl_SV_copy.cc: Likewise.
1022         * src/vector/cl_SV_number.cc: Likewise.
1023         * src/vector/cl_SV_ringelt.cc: Likewise.
1024         * tests/main.cc: Likewise.
1025         * tests/test_I_ilength.cc: Likewise.
1026         * tests/test_I_ord2.cc: Likewise.
1027
1028 2006-04-19  Bruno Haible  <bruno@clisp.org>
1029
1030         Prepare for autoconf-2.60.
1031         * general.m4 (CL_CC_WORKS): Include <stdlib.h>, for exit() declaration.
1032         * longdouble.m4 (CL_LONGDOUBLE): Likewise.
1033         * longlong.m4 (CL_LONGLONG): Likewise.
1034         * times.m4 (CL_TIMES_CLOCK): Likewise.
1035         Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
1036
1037 2005-12-04  Bruno Haible  <bruno@clisp.org>
1038
1039         * src/integer/conv/cl_I_to_digits.cc (I_to_digits_noshrink): Set
1040         erg->len at the end.
1041
1042 2005-12-04  Bruno Haible  <bruno@clisp.org>
1043
1044         Extend the fixnum range from 32 bits to 61 bits on 64-bit platforms.
1045         * doc/cln.tex (gcd, jacobi): Take 'long' instead of 'int32' arguments.
1046         * include/cln/object.h (cl_value_shift): Define as 3, not 32, in the
1047         64-bit case.
1048         * include/cln/types.h (intVsize): New macro.
1049         (sintV, uintV): New types.
1050         * include/cln/integer.h (gcd): Take uintV arguments.
1051         * include/cln/numtheory.h (jacobi): Take sintV arguments.
1052         * src/complex/input/cl_N_read.cc (read_complex): Call FN_to_UV instead
1053         of FN_to_UL.
1054         * src/complex/transcendental/cl_C_expt_C.cc: Likewise.
1055         * src/float/dfloat/elem/cl_DF_scale_I.cc: Use uintV instead of uintL
1056         * src/float/dfloat/elem/cl_DF_from_RA.cc: Don't assume values >= 2^53
1057         and < 2^55 are always bignums.
1058         where appropriate.
1059         * src/float/ffloat/conv/cl_RA_to_float.cc: Call FN_to_UV instead of
1060         FN_to_UL.
1061         * src/float/ffloat/elem/cl_FF_from_RA.cc: Likewise.
1062         * src/float/ffloat/elem/cl_FF_scale_I.cc: Call FN_to_V instead of
1063         FN_to_L.
1064         * src/float/lfloat/elem/cl_LF_scale_I.cc: Likewise.
1065         * src/float/output/cl_F_dprint.cc: Likewise.
1066         * src/float/sfloat/elem/cl_SF_from_RA.cc: Call FN_to_UV instead of
1067         FN_to_UL.
1068         * src/float/sfloat/elem/cl_SF_scale_I.cc: Call FN_to_V instead of
1069         FN_to_L.
1070         * src/integer/cl_I.h (FN_to_UV): Renamed from FN_to_UL, change return
1071         type.
1072         (FN_to_V): Renamed from FN_to_L, change return type.
1073         (FN_V_zerop): Renamed from FN_L_zerop.
1074         (FN_V_minusp): Renamed from FN_L_minusp.
1075         (cl_I_constructor_from_L2, cl_I_constructor_from_UL2): Define as an
1076         inline function on 64-bit platforms.
1077         (V_to_I, UV_to_I): New macros.
1078         (pFN_maxlength_digits_at): Return an uintV instead of an uint32.
1079         (set_pFN_maxlength_digits_at): Take an uintV instead of an uint32.
1080         * src/integer/algebraic/cl_I_sqrtp.cc: Call FN_to_UV instead of
1081         FN_to_UL.
1082         * src/integer/bitwise/cl_I_ash_I.cc: Call FN_to_V instead of FN_to_L.
1083         * src/integer/bitwise/cl_I_ilength.cc: Likewise.
1084         * src/integer/bitwise/cl_I_log_aux.cc: Likewise.
1085         * src/integer/bitwise/cl_I_logbitp_I.cc: Likewise.
1086         * src/integer/bitwise/cl_I_logcount.cc: Likewise.
1087         * src/integer/bitwise/cl_I_logtest.cc: Likewise.
1088         * src/integer/conv/cl_I_from_L2.cc: Don't produce code on 64-bit
1089         platforms.
1090         * src/integer/conv/cl_I_from_UL2.cc: Likewise.
1091         * src/integer/conv/cl_I_from_NDS.cc: Update.
1092         * src/integer/conv/cl_I_from_Q.cc: Remove cast to sint32.
1093         * src/integer/conv/cl_I_from_UQ.cc: Remove cast to uint32.
1094         * src/integer/conv/cl_I_to_L.cc: Check again fixnum that needs more
1095         than 32 bits.
1096         * src/integer/conv/cl_I_to_Q.cc: Call FN_to_V instead of FN_to_L.
1097         * src/integer/conv/cl_I_to_UL.cc: Likewise.
1098         * src/integer/conv/cl_I_to_UQ.cc: Likewise.
1099         * src/integer/elem/cl_I_div.cc: Treat fixnums that need more than 32
1100         bits like bignums.
1101         * src/integer/elem/cl_I_minus.cc: Call FN_to_V instead of FN_to_L.
1102         * src/integer/elem/cl_I_mul.cc: Likewise.
1103         * src/integer/elem/cl_I_plus.cc: Likewise.
1104         * src/integer/elem/cl_I_square.cc: Likewise.
1105         * src/integer/elem/cl_I_uminus.cc: Likewise.
1106         * src/integer/gcd/cl_I_gcd.cc: Likewise.
1107         * src/integer/gcd/cl_low_gcd.cc (gcd): Take uintV arguments.
1108         * src/integer/hash/cl_I_hashcode.cc: Call FN_to_V instead of FN_to_L.
1109         * src/integer/input/cl_I_read.cc (read_integer): Call FN_to_UV instead
1110         of FN_to_UL.
1111         * src/integer/misc/cl_I_ord2.cc (ord2): Call ord2_64 on 64-bit
1112         platforms.
1113         * src/integer/misc/cl_I_power2p.cc: Call FN_to_UV instead of FN_to_UL.
1114         * src/integer/misc/combin/cl_I_doublefactorial.cc (doublefakul_table):
1115         Extend table for larger fixnums.
1116         (doublefactorial): Update.
1117         * src/integer/misc/combin/cl_I_factorial.cc (fakul_table): Extend table
1118         for larger fixnums.
1119         (factorial): Update.
1120         * src/modinteger/cl_MI_fix16.h: Call FN_to_UV instead of FN_to_UL.
1121         * src/modinteger/cl_MI_fix29.h: Likewise.
1122         * src/modinteger/cl_MI_fix32.h: Likewise.
1123         * src/modinteger/cl_MI_std.h: Likewise.
1124         * src/numtheory/cl_nt_cornacchia4.cc: Call FN_to_V instead of FN_to_L.
1125         * src/numtheory/cl_nt_jacobi.cc: Likewise.
1126         * src/numtheory/cl_nt_jacobi_low.cc (jacobi_aux): Take uintV arguments
1127         instead of uint32 arguments.
1128         (jacobi): Take sintV argument instead of a sint32 argument.
1129         * src/rational/input/cl_RA_read.cc: Call FN_to_UV instead of FN_to_UL.
1130         * src/real/input/cl_R_read.cc: Likewise.
1131         * src/vector/cl_GV_I.cc: Likewise.
1132         * tests/timefact.cc: Call FN_to_V instead of FN_to_L.
1133
1134 2005-12-04  Bruno Haible  <bruno@clisp.org>
1135
1136         More complete 64-bit division macros.
1137         * src/base/cl_low.h (divu_6432_3232_w): Choose a different macro
1138         expansion on x86_64.
1139         (divu_6432_6432): New macro.
1140         (divu_6464_6464): Choose a different macro expansion for all CPUs
1141         except sparc64 and x86_64.
1142         (divu_12864_6464): Define NEED_VAR_divu_64_rest here.
1143         * src/base/low/cl_low_div.cc (divu_64_rest): Avoid defining it twice.
1144         (divu_6464_6464_): New function.
1145
1146 2005-12-04  Bruno Haible  <bruno@clisp.org>
1147
1148         * src/base/cl_low.h (ord2_64): New macro.
1149
1150 2005-12-02  Bruno Haible  <bruno@clisp.org>
1151
1152         * src/base/cl_low.h (mulu64) [x86_64]: Change asm restriction, since
1153         mulq doesn't accept immediate arguments.
1154
1155 2005-11-26  Bruno Haible  <bruno@clisp.org>
1156
1157         * src/base/cl_low.h (GENERIC_INTEGERLENGTH32): New macro.
1158         (integerlength64): Define using integerlength32 if integerlength32
1159         is not defined generically.
1160
1161 2005-11-26  Bruno Haible  <bruno@clisp.org>
1162
1163         * src/base/cl_low.h (mulu32) [SPARC64]: Remove rd instruction, since
1164         umul returns the complete 64-bit product in a register.
1165         (mulu32_w) [SPARC64]: Prefer umul over mulx instruction.
1166         (divu_6432_3232_w) [SPARC64]: Prefer umul/udiv over mulx/udivx
1167         instructions.
1168
1169 2005-11-26  Bruno Haible  <bruno@clisp.org>
1170
1171         * src/base/cl_low.h (divu_3216_1616): Prepend underscore to local
1172         variables.
1173
1174 2005-11-26  Bruno Haible  <bruno@clisp.org>
1175
1176         * src/base/cl_low.h (ord2_32): Parenthesize macro argument.
1177
1178 2005-12-17  Richard B. Kreckel  <kreckel@ginac.de>
1179
1180         * Created branch cln_1-1 for maintenance patches.
1181         This is the main branch, which will eventually become CLN 1.2.0.
1182
1183 2005-12-15  Dmitry V. Kustov  <kustov@telex221.ru>
1184
1185         * src/base/random/cl_random_from.cc: Add support for OpenBSD.
1186
1187 2005-11-23  Richard B. Kreckel  <kreckel@ginac.de>
1188
1189         * Version 1.1.11 released.
1190
1191 2005-11-20  Richard B. Kreckel  <kreckel@ginac.de>
1192
1193         * src/integer/conv/cl_I_cached_power.h: New file.
1194         * src/integer/conv/cl_I_cached_power.cc: New file.
1195         Contains power_table and cached_power_table previously...
1196         * src/integer/conv/cl_I_to_digits.cc: ...here.
1197         * src/integer/conv/cl_I_from_digits.cc: Use cached powers.
1198
1199 2005-11-02  Richard B. Kreckel  <kreckel@ginac.de>
1200
1201         * src/integer/conv/cl_I_from_digits.cc: Made input of all numbers in
1202         non-power-of-two base much faster.
1203         * tests/test_I_io.cc: New file...
1204         * tests/Makefile.in, tests/test_I.cc: ...used here.
1205
1206 2005-10-22  Richard B. Kreckel  <kreckel@ginac.de>
1207
1208         * Version 1.1.10 released.
1209
1210 2005-10-22  Richard B. Kreckel  <kreckel@ginac.de>
1211
1212         * src/Makefile.in: Accept CPPFLAGS from environment.
1213         * examples/Makefile.in: Likewise.
1214         * benchmarks/Makefile.in: Likewise.
1215         * tests/Makefile.in: Likewise.
1216
1217 2005-08-30  Richard B. Kreckel  <kreckel@ginac.de>
1218
1219         * include/cln/modules.h (CL_OUTPUT_LABEL): Work around redundant
1220         duplication of basic blocks on m68k.
1221
1222 2005-08-30  Richard B. Kreckel  <kreckel@ginac.de>
1223
1224         * include/cln/modules.h (CL_JUMP_TO): Fix mips* brokenness.
1225
1226 2005-08-27  Bruno Haible  <bruno@clisp.org>
1227
1228         Split aclocal.m4 into individual files.
1229         * m4/alloca.m4, m4/as-underscore.m4, m4/c++-constructors.m4:
1230         * m4/fpu_control.m4, m4/general.m4, m4/gettimeofday.m4:
1231         * m4/longdouble.m4, m4/longlong.m4, m4/param.m4, m4/perror.m4:
1232         * m4/proto.m4, m4/rusage.m4, m4/times.m4:
1233         New files, extracted from autoconf/aclocal.m4.
1234         * autoconf/aclocal.m4: m4_include them.
1235         * Makefile.devel (AUTOCONF_MACROS): New variable.
1236         (configure): Depend on it.
1237         (CLISP_M4DIR): Remove variable.
1238         (autoconf/aclocal.m4): Remove rule.
1239
1240 2005-08-27  Bruno Haible  <bruno@clisp.org>
1241
1242         * src/integer/bitwise/cl_I_ash_I.cc (ash): Avoid shifting a 32-bit
1243         zero value by more than 31 bits.
1244
1245 2005-08-27  Bruno Haible  <bruno@clisp.org>
1246
1247         Make the long-float overflow check work on 64-bit platforms.
1248         * src/float/lfloat/cl_LF.h (LF_exp_mid, LF_exp_high): Define as
1249         'unsigned int', not 'unsigned long'.
1250
1251 2005-08-27  Bruno Haible  <bruno@clisp.org>
1252
1253         * include/cln/modules.h (CL_OUTPUT_LABEL): Work around redundant
1254         duplication of basic blocks by g++ 4.0.
1255         See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23345>.
1256
1257 2005-08-27  Bruno Haible  <bruno@clisp.org>
1258
1259         Make it possible to cross-compile CLN.
1260         * m4/intparam.m4: New file.
1261         * m4/floatparam.m4: New file.
1262         * autoconf/aclocal.m4: Include both.
1263         (CL_MACHINE): Add an additional CROSS_MACRO parameter.
1264         * configure.ac (CL_MACHINE): When cross-compiling, use
1265         CL_INTPARAM_CROSS and CL_FLOATPARAM_CROSS.
1266
1267 2005-08-27  Bruno Haible  <bruno@clisp.org>
1268
1269         Define HAVE_LONGLONG and HAVE_LONGDOUBLE when cross-compiling.
1270         * autoconf/aclocal.m4 (CL_LONGLONG, CL_LONGDOUBLE): When cross-
1271         compiling, use the test code from gnulib.
1272
1273 2005-08-27  Bruno Haible  <bruno@clisp.org>
1274
1275         * autoconf/aclocal.m4 (CL_RUSAGE): Fix error when cross-compiling.
1276
1277 2005-08-16  Richard B. Kreckel  <kreckel@ginac.de>
1278
1279         The patch of 2005-05-01 made it impossible to test the type of a cl_UP
1280         by comparing with &cl_class_univpoly_ring. We need an alternative:
1281         * include/cln/object.h (cl_class_flags_modint_ring): New #define...
1282         * src/polynomial/elem/cl_UP.cc (cl_class_univpoly_ring): ...used here.
1283         * src/polynomial/elem/cl_UP_GF2.h: Likewise.
1284         * src/polynomial/elem/cl_UP_MI.h: Likewise.
1285         * src/polynomial/elem/cl_UP_gen.h: Likewise.
1286         * src/polynomial/elem/cl_UP_number.h: Likewise.
1287
1288 2005-08-15  Richard B. Kreckel  <kreckel@ginac.de>
1289
1290         * m4/cc.m4 (CL_AS_NOEXECSTACK): New macro...
1291         * configure.ac: ...used here for setting ASMFLAGS...
1292         * src/Makefile.in: ...which are used here.
1293
1294 2005-08-02  Andreas Jochens  <aj@andaco.de>
1295
1296         * include/cln/config.h.in: Add support for PowerPC 64 CPU.
1297         * include/cln/modules.h: Likewise.
1298         * include/cln/object.h: Likewise.
1299         * include/cln/types.h: Likewise.
1300
1301 2005-07-24  Richard B. Kreckel  <kreckel@ginac.de>
1302
1303         Make out of the box build on x86_64 system with complete 32 bit
1304         userland possible
1305         * include/cln/config.h.in: Don't #define __x86_64__ when
1306         __i386__ is defined.
1307         * src/base/digitseq/cl_asm_x86_64_.cc: New file.
1308         * doc/cln.tex: Revert workaround description introduced 2005-05-02.
1309
1310 2005-06-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1311
1312         * Makefile.in: Don't enter nonexisting directories.
1313
1314 2005-05-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1315
1316         Speed up the linking step
1317         * src/Makefile.in: Use -objectlist for linking libcln.la.
1318
1319 2005-05-15  Richard B. Kreckel  <kreckel@ginac.de>
1320
1321         * autoconf/ltmain.sh: Upgrade to libtool-1.5.16.
1322         * m4/libtool.m4: Upgrade to libtool-1.5.16 (without Comeau patch).
1323
1324 2005-05-02  Richard B. Kreckel  <kreckel@ginac.de>
1325
1326         * doc/cln.tex: Document what to do on a x86_64 machine with 32-bit
1327         userland.
1328
1329 2005-05-01  Richard B. Kreckel  <kreckel@ginac.de>
1330
1331         Fix crashes in find_univpoly_ring and related functions
1332         * include/cln/modinteger.h: Remove vptr from cl_heap_modint_ring;
1333         remove declaration of cl_class cl_class_modint_ring.
1334         * include/cln/univpoly.h: Remove vptr from cl_heap_univpoly_ring;
1335         remove declaration of cl_class_univpoly_ring.
1336         * include/cln/object.h: cl_class_flags_modint_ring: New #define...
1337         * src/modinteger/cl_MI.cc: ...used in cl_class_modint_ring.
1338         * src/modinteger/cl_MI_fix16.h: No vptr, but static dtor and type flag.
1339         * src/modinteger/cl_MI_fix29.h: Likewise.
1340         * src/modinteger/cl_MI_fix32.h: Likewise.
1341         * src/modinteger/cl_MI_int32.h: Likewise.
1342         * src/modinteger/cl_MI_montgom.h: Likewise.
1343         * src/modinteger/cl_MI_pow2: Likewise.
1344         * src/modinteger/cl_MI_pow2m1.h: Likewise.
1345         * src/modinteger/cl_MI_pow2p1.h: Likewise.
1346         * src/modinteger/cl_MI_std.h: Likewise.
1347         * src/polynomial/elem/cl_UP.cc (cl_make_univpoly_ring): Compare with
1348         cl_class_flags_modint_ring, not with cl_class_modint_ring.
1349         * src/polynomial/elem/cl_UP_GF2.h (cl_class_num_univpoly_ring): New.
1350         * src/polynomial/elem/cl_UP_MI.h (cl_class_modint_univpoly_ring): New.
1351         * src/polynomial/elem/cl_UP_gen.h (cl_class_gen_univpoly_ring): New.
1352         * src/polynomial/elem/cl_UP_number.h (cl_class_num_univpoly_ring): New.
1353         Reported by Ralf Goertz <R_Goertz@web.de>.
1354
1355 2005-04-29  Richard B. Kreckel  <kreckel@ginac.de>
1356             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1357
1358         * m4/cc.m4: Emit a warning if g++ is used and optimization turned off.
1359
1360 2005-04-24  Richard B. Kreckel  <kreckel@ginac.de>
1361
1362         Make GCC compiler flags default to -O
1363         * m4/cc.m4: New file...
1364         * configure.ac: ...used here.
1365         * autoconf/aclocal.m4: Regenerate.
1366
1367 2005-04-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1368
1369         * include/cln/string.h: Declare cl_string.
1370
1371 2005-03-17  Richard B. Kreckel  <kreckel@ginac.de>
1372
1373         * autoconf/ltmain.sh: Upgrade to libtool-1.5.14.
1374         * m4/libtool.m4: Upgrade to libtool-1.5.14 with Comeau patch.
1375         * autoconf/aclocal.m4: Regenerate.
1376
1377 2005-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1378
1379         * src/Makefile.in: Use $CXX instead of $CC when linking.
1380
1381 2005-02-27  Richard B. Kreckel  <kreckel@ginac.de>
1382         
1383         * examples/perfnum.cc: update to presumed 42st Mersenne prime.
1384
1385 2004-11-28  Richard B. Kreckel  <kreckel@ginac.de>
1386
1387         Disambiguate binary operators of CLN types with float/double
1388         * include/cln/dfloat.h: Add binary operator overloads for arguments of
1389         type double.
1390         * include/cln/ffloat.h: Likewise, for arguments of type float.
1391         * include/cln/float.h: Likewise, both for arguments of types double and
1392         float.
1393         * include/cln/real.h: Likewise.
1394         Reported by Isidro Cachadiña Gutiérrez <icacha@unex.es>.
1395
1396 2004-11-03  Richard B. Kreckel  <kreckel@ginac.de>
1397
1398         * Version 1.1.9 released.
1399
1400 2004-10-28  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1401
1402         * src/Makefile.in: Let config.status set LDFLAGS.
1403
1404 2004-10-27  Peter Breitenlohner  <peb@mppmu.mpg.de>
1405
1406         * cln.pc.in: Fix typo.
1407         * Makefile.in (INSTALL_SCRIPT): Added, to be used for scripts like
1408         cln-config.  Allows us to do special things to binaries, like
1409         installing them with install -s.
1410         * doc/Makefile.in: add/remove the cln.info from the installed
1411         $(infodir)/dir unless this is debian install-info (code copied from
1412         what GNU automake would produce).
1413
1414 2004-10-26  Richard B. Kreckel  <kreckel@ginac.de>
1415
1416         * src/integer/input/cl_I_read_stream.cc (read_integer): Fix a bug
1417         that caused radix specifiers to not work when reading from a stream.
1418         * src/rational/input/cl_RA_read_stream.cc (read_rational): Likewise.
1419         * src/real/input/cl_R_read_stream.cc (read_real): Likewise.
1420         * src/float/input/cl_F_read_stream.cc (read_float): Likewise.
1421         * src/complex/input/cl_N_read_stream.cc (read_complex): Likewise.
1422
1423 2004-10-25  Richard B. Kreckel  <kreckel@ginac.de>
1424
1425         * src/base/cl_low.h: Add mulu64 assembler macro for ia64.
1426
1427 2004-10-24  Richard B. Kreckel  <kreckel@ginac.de>
1428
1429         * src/base/cl_low.h: Add mul and div macros for x86_64.
1430
1431 2004-10-23  Richard B. Kreckel  <kreckel@ginac.de>
1432
1433         * src/integer/conv/cl_I_from_digits.cc (digits_to_I): Fix thinko in
1434         new code for base power of two.
1435
1436 2004-10-22  Richard B. Kreckel  <kreckel@ginac.de>
1437
1438         * src/integer/conv/cl_I_to_digits (I_to_digits): Fix an elusive stack
1439         overwriting problem. That was the real cause for Debian bug#246319.
1440         * src/integer/output/cl_I_print.cc (print_integer): Revert workaround
1441         for the bug fixed above.
1442
1443 2004-10-20  Richard B. Kreckel  <kreckel@ginac.de>
1444
1445         * include/cln/types.h: Use 64 bit digits on x86_64 CPU.
1446
1447 2004-10-12  Richard B. Kreckel  <kreckel@ginac.de>
1448
1449         * src/integer/conv/cl_I_from_digits.cc (digits_to_I): Speedup when
1450         the base is a power of two.
1451
1452 2004-10-05  Richard B. Kreckel  <kreckel@ginac.de>
1453
1454         * src/integer/conv/cl_I_to_digits.cc (I_to_digits): Fix bug in base 32.
1455
1456 2004-09-27  Richard B. Kreckel  <kreckel@ginac.de>
1457
1458         Support for little-endian Mips, second shot
1459         * src/base/digitseq/cl_asm_mipsel_.cc: New file...
1460         * src/base/digitseq/cl_asm_cc: ...used here.
1461         * src/base/digitseq/cl_asm.h: Include cl_asm_mips.h for any endianness.
1462         * include/cln/object.h: Set alignment for mipsel explicitly.
1463
1464 2004-09-05  Richard B. Kreckel  <kreckel@ginac.de>
1465
1466         Support for little-endian Mips
1467         * include/cln/config.h.in: Add __mipsel__.
1468         * include/cln/modules.h: For Mips, this is endianness-agnostic.
1469         * src/base/digitseq/cl_asm_.cc, src/base/digitseq/cl_asm.h:
1470         Mask out assembler for little-endian Mips.
1471
1472 2004-08-30  Bruno Haible  <bruno@clisp.org>
1473
1474         * benchmarks/timebench2.sh: Multiply all repeat counts by 100.
1475         * benchmarks/timebench2.results: Add recent PowerPC G4 results.
1476
1477 2004-08-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1478
1479         * examples/e.cc: remove extra semicolon.
1480
1481 2004-08-25  Bruno Haible  <bruno@clisp.org>
1482
1483         * autoconf/ltmain.sh: Upgrade to libtool-1.5.6.
1484         * m4/libtool.m4: New file, from libtool-1.5.6 with modifications:
1485         2004-08-22  Bruno Haible  <bruno@clisp.org>
1486           * m4/libtool.m4: Add support for Comeau C++ on Linux.
1487           Reported by Prof. Roberto Bagnara <bagnara@cs.unipr.it>.
1488         * autoconf/aclocal.m4: Regenerate.
1489
1490 2004-08-19  Bruno Haible  <bruno@clisp.org>
1491
1492         * include/cln/modules.h (CL_GLOBALIZE_JUMP_LABEL, CL_JUMP_TO): When
1493         converting a label to a string, use ASM_UNDERSCORE_PREFIX. Needed on
1494         MacOS X.
1495         Reported by Darren Bane <darren.bane@ul.ie>.
1496
1497 2004-07-01  Richard B. Kreckel  <kreckel@ginac.de>
1498
1499         * Version 1.1.8 released.
1500
1501 2004-06-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1502
1503         * src/base/cl_macros.h: alloca(3) has size_t argument type.
1504
1505 2004-06-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1506
1507         * include/cln/floatformat.h: Do define a type here.
1508
1509 2004-06-27  Richard B. Kreckel  <kreckel@ginac.de>
1510
1511         * include/cln/modules.h (CL_JUMP_TO): Fix AMD64 brokenness.
1512
1513 2004-06-23  Bruno Haible  <bruno@clisp.org>
1514
1515         * configure.ac: Pretend ftime() is not available. Needed by
1516         CL_TIMES_CLOCK.
1517
1518 2004-06-21  Ralf Stephan  <ralf@ark.in-berlin.de>
1519
1520         * doc/cln.tex: Document jacobi, isprobprime and nextprobprime.
1521
1522 2004-06-18  Richard B. Kreckel  <kreckel@ginac.de>
1523
1524         * rational/transcendental/cl_RA_logp.cc: fix bug where base is
1525         reciprocal of an integer.
1526         Reported by Niklas Knutsson <nq@altern.org>.
1527
1528 2004-06-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1529
1530         * src/complex/ring/cl_C_ring.cc, src/integer/ring/cl_I_ring.cc,
1531         src/rational/ring/cl_RA_ring.cc, src/real/ring/cl_R_ring.cc:
1532         Make template specializations explicit.
1533
1534 2004-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1535
1536         * src/complex/input/cl_N_read.cc, src/float/input/cl_F_read.cc,
1537         src/integer/input/cl_I_read.cc, src/rational/input/cl_RA_read.cc,
1538         src/real/input/cl_R_read.cc:  Remove unused labels.
1539
1540 2004-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1541
1542         * benchmarks/timebench1.cc, benchmarks/timebench2a.LiDIA.cc,
1543         benchmarks/timebench2a.cc, benchmarks/timebench2ap.cc,
1544         benchmarks/timebench2b.LiDIA.cc, benchmarks/timebench2b.cc,
1545         examples/atan_recip.cc, examples/atanh_recip.cc,
1546         examples/contfrac.cc, examples/e.cc, examples/legendre.cc,
1547         examples/lucaslehmer.cc, examples/pi.cc, include/cln/GV.h,
1548         include/cln/SV.h, include/cln/malloc.h, include/cln/modules.h,
1549         include/cln/object.h, include/cln/string.h, src/base/cl_abort.cc,
1550         src/base/cl_alloca.h, src/base/cl_malloc.cc,
1551         src/base/random/cl_random_from.cc,
1552         src/base/string/cl_spushstring_append.cc,
1553         src/base/string/cl_spushstring_push.cc,
1554         src/base/string/cl_st_debug.cc,
1555         src/base/string/input/cl_st_gettoken.cc,
1556         src/complex/input/cl_N_read.cc, src/float/input/cl_F_read.cc,
1557         src/float/output/cl_F_dprint.cc, src/integer/input/cl_I_read.cc,
1558         src/rational/input/cl_RA_read.cc,
1559         src/real/format-output/cl_fmt_integer.cc,
1560         src/real/format-output/cl_fmt_paddedstring.cc,
1561         src/real/input/cl_R_read.cc, src/timing/cl_t_current.cc,
1562         src/timing/cl_t_current2.cc, tests/exam.cc, tests/tests.cc,
1563         tests/timeLFRAmul.cc, tests/timeLFatan-compare.cc,
1564         tests/timeLFatan.cc, tests/timeLFatanh-compare.cc,
1565         tests/timeLFatanh.cc, tests/timeLFcos-compare.cc, tests/timeLFcos.cc,
1566         tests/timeLFcosh.cc, tests/timeLFexp-compare.cc, tests/timeLFexp.cc,
1567         tests/timeLFln-compare.cc, tests/timeLFln.cc,
1568         tests/timeLFsin-compare.cc, tests/timeLFsin.cc, tests/timeLFsinh.cc,
1569         tests/timeLFsqrt.cc, tests/timeMImisc5.cc, tests/timeMIpow2div.cc,
1570         tests/timeMIpow2recip.cc, tests/timeRALFdiv.cc, tests/timeRAtoLF.cc,
1571         tests/timeUPMImul.cc, tests/timecatalan.cc, tests/timediv.cc,
1572         tests/timediv2adic-compare.cc, tests/timediv2adic.cc,
1573         tests/timeeuler.cc, tests/timeexp1.cc, tests/timefact.cc,
1574         tests/timegcd.cc, tests/timemul-compare.cc, tests/timemul.cc,
1575         tests/timepi.cc, tests/timeprint-compare.cc, tests/timeprint.cc,
1576         tests/timerecip2adic-compare.cc, tests/timerecip2adic.cc,
1577         tests/timesqrt.cc, tests/timesqrtmodp.cc, tests/timesquare.cc,
1578         tests/timezeta3.cc: Change all C include headers to ISO style
1579         within C++ code.
1580
1581 2004-06-10  Richard B. Kreckel  <kreckel@ginac.de>
1582
1583         * examples/perfnum.cc: update to presumed 41st Mersenne prime.
1584
1585 2004-05-02  Richard B. Kreckel  <kreckel@ginac.de>
1586
1587         * Version 1.1.7 released.
1588
1589 2004-05-02  Richard B. Kreckel  <kreckel@ginac.de>
1590
1591         * examples/pi.cc and examples/pi.1: New files.
1592         * examples/Makefile.in: Build the pi executable.
1593
1594 2004-05-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1595
1596         * src/Makefile.in: Fix for parallel build: wait for subdir objects to
1597         be finished before creating the library.
1598
1599 2004-04-30  Richard B. Kreckel  <kreckel@ginac.de>
1600
1601         * src/integer/output/cl_I_print.cc (print_integer): workaround
1602         GCC compiler bug (cf. Debian bug#246319).
1603
1604 2004-03-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1605
1606         * m4/gmp.m4 (CL_GMP_CHECK): Do not lose LIBS setting with config.cache
1607         enabled.
1608
1609 2004-03-08  Bruno Haible  <bruno@clisp.org>
1610
1611         * src/float/lfloat/elem/cl_LF_mul.cc (operator*): Fix the second
1612         underflow condition.
1613         * src/float/lfloat/algebraic/cl_LF_sqrt.cc (sqrt): Fix a bug with large
1614         uexp whereby SQRT of MOST-POSITIVE-LONG-FLOAT was less than 1.
1615
1616 2004-03-04  Richard B. Kreckel  <kreckel@ginac.de>
1617
1618         * Makefile.in (install): Add ${srcdir} for cln.m4.
1619         * m4/gmp.m4: quote macro names.
1620         Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
1621
1622 2004-01-01  Richard B. Kreckel  <kreckel@ginac.de>
1623
1624         * Version 1.1.6 released.
1625
1626 2004-01-01  Richard B. Kreckel  <kreckel@ginac.de>
1627
1628         * include/cln/univpoly.h, include/cln/univpoly_complex.h,
1629           include/cln//univpoly_integer.h, include/cln/univpoly_modint.h,
1630           include/cln/univpoly_rational.h, include/cln/univpoly_real.h,
1631           src/polynomial/elem/cl_UP_GF2.h, src/polynomial/elem/cl_UP_MI.h,
1632           src/polynomial/elem/cl_UP_gen.h, src/polynomial/elem/cl_UP_no_ring.cc,
1633           src/polynomial/elem/cl_UP_number.h (ldegree): New function.
1634         * doc/cln.tex: Document `ldegree'.
1635
1636 2003-12-29  Richard B. Kreckel  <kreckel@ginac.de>
1637
1638         Rework of autoconfiscation infrastructure
1639         * autoconf/config.{guess,sub}: Update to GNU version 2003-10-07.
1640         * autoconf/ltmain.sh: Update to GNU version 1.4.3.
1641         * autoconf/autoconf: Remove (from now on we assume autoconf is
1642           installed properly on the sytem).
1643         * autoconf/autoconf.m4: Likewise.
1644         * autoconf/autoconf.m4f: Likewise.
1645         * autoconf/acgeneral.m4: Likewise.
1646         * autoconf/acspecific.m4: Likewise.
1647         * autoconf/aclocal.m4: Regenerate.
1648         * autoconf/acinclude.m4: Remove (while moving the macros...)
1649         * m4/gmp.m4: New file (...to here).
1650         * Makefile.devel: Update to new scheme.
1651         * configure.ac: Likewise.
1652         * include/cln/GV_integer.h: Assume template specializations work.
1653         * include/cln/GV_modinteger.h: Likewise.
1654         * include/cln/config.h.in: Likewise, and drop HAVE_BOOL.
1655         * src/base/cl_base_config.h.in: Drop support for obsolete ftime(3).
1656         * src/base/random/cl_random_from.cc: Likewise.
1657         * src/timing/cl_base_config.h.in: Likewise.
1658         * src/timing/cl_t_current.cc: Likewise.
1659
1660 2003-12-27  Richard B. Kreckel  <kreckel@ginac.de>
1661
1662         * src/polynomial/cl_UP_gen.h (gen_minus): Fix case where first
1663           argument is zero.
1664         * src/polynomial/cl_UP_MI.h (modint_minus): Likewise.
1665         * src/polynomial/cl_UP_number.h (num_minus): Likewise.
1666         Reported by Munagala Ramanath <amberarrow@yahoo.com>.
1667
1668 2003-12-02  Richard B. Kreckel  <kreckel@ginac.de>
1669
1670         * examples/perfnum.cc: update to presumed 40th Mersenne prime.
1671
1672 2003-11-20  Christian Bauer  <cbauer@ginac.de>
1673
1674         Added pkg-config support
1675         * cln.pc.in: New file.
1676         * Makefile.in: Take care of cln.pc.
1677         * configure.ac: Likewise.
1678
1679 2003-08-06  Richard B. Kreckel  <kreckel@ginac.de>
1680
1681         * src/numtheory/cl_nt_sqrtmodp.cc: #undef _R.
1682         Reported by Andrew Rechnitzer <A.Rechnitzer@ms.unimelb.edu.au>.
1683
1684 2003-08-01  Richard Kreckel  <kreckel@ginac.de>
1685
1686         More dependent base resolution issues
1687         * src/base/hash/cl_hash.h (cl_heap_hashtable<T>::iterator()): 
1688         portable syntactic simplification.
1689         * src/base/hash/cl_hashset.h: Preceed inherited members with this->.
1690         * src/base/hash/cl_hash1.h: Likewise for member functions.
1691         * src/base/hash/cl_hash2.h: Likewise.
1692         * src/base/hash/cl_hashuniq.h: Likewise.
1693         * src/base/hash/cl_hashuniqweak.h: Likewise.
1694         * src/base/hash/cl_hash.h: Revert explicit static member function
1695         lookup since that was GCC's fault.
1696         * src/base/hash/cl_hash2weak.h: Likewise.
1697         * src/base/hash/cl_hashuniqweak.h: Likewise.
1698
1699 2003-06-29  Richard Kreckel  <kreckel@ginac.de>
1700
1701         Dependent base resolution needed for GCC-3.4
1702         * include/cln/GV.h: Preceed inherited members with this->.
1703         * include/cln/SV.h: Likewise.
1704         * include/cln/object.h: Likewise.
1705         * src/base/hash/cl_hash1.h: Likewise.
1706         * src/base/hash/cl_hash1weak.h: Likewise.
1707         * src/base/hash/cl_hash2.h: Likewise.
1708         * src/base/hash/cl_hashuniq.h: Likewise.
1709         * src/base/hash/cl_hash.h: Make lookup of static member function 
1710         explicit.
1711         * src/base/hash/cl_hash2weak.h: Likewise.
1712         * src/base/hash/cl_hashuniqweak.h: Likewise.
1713         * src/modinteger/cl_MI.cc: Make shell-comment a C-comment. Geez.
1714
1715 2003-02-24  Bruno Haible  <bruno@clisp.org>
1716
1717         * src/base/random/cl_random_from.cc (random_state::random_state): Add
1718         support for MacOS X.
1719         * src/modinteger/cl_MI.cc: #undef _R.
1720         Reported by Erann Gat <gat@jpl.nasa.gov>.
1721
1722 2002-08-03  Joerg Arndt  <jj@suse.de>
1723
1724         * include/cln/config.h.in: Add support for x86_64 CPU.
1725         * include/cln/modules.h: Likewise.
1726         * include/cln/types.h: Likewise.
1727         * include/cln/object.h: Likewise.
1728
1729 2002-06-08  Richard Kreckel  <kreckel@ginac.de>
1730
1731         * src/base/digitseq/cl_asm.h: ensure intCsize==16 when including
1732         m68k Assembler routines.
1733         * src/base/digitseq/cl_asm_.cc: Likewise.
1734
1735 2002-05-28  Richard Kreckel  <kreckel@ginac.de>
1736
1737         * Version 1.1.5 released.
1738
1739 2002-05-27  Richard Kreckel  <kreckel@ginac.de>
1740
1741         * include/cln/modules.h (CL_CONCATENATE): New macro.
1742
1743 2002-05-10  Richard Kreckel  <kreckel@ginac.de>
1744
1745         * doc/cln.tex (Building the library): Update recommendations for 
1746         compiling on Tru64 using g++ 3.0 and 3.1.
1747         * README: Update homepage.
1748
1749 2002-05-05  Bruno Haible  <bruno@clisp.org>
1750
1751         * doc/cln.tex (Building the library): Give some recommendations for
1752         g++ 3.0 and 3.1.
1753
1754         Force link-time references despite optimizations done by g++ 2.95
1755         and newer.
1756         * include/cln/modules.h (CL_FORCE_LINK): New macro.
1757         * Use CL_FORCE_LINK.
1758         * include/cln/GV_integer.h (cl_GV_I_debug_dummy): Likewise.
1759         * include/cln/GV_number.h (cl_GV_number_debug_dummy): Likewise.
1760         * include/cln/SV_number.h (cl_SV_number_debug_dummy): Likewise.
1761         * include/cln/SV_ringelt.h (cl_SV_ringelt_debug_dummy): Likewise.
1762         * include/cln/dfloat.h (cl_DF_debug_dummy): Likewise.
1763         * include/cln/ffloat.h (cl_FF_classes_dummy, cl_FF_debug_dummy):
1764         Likewise.
1765         * include/cln/integer.h (cl_I_classes_dummy, cl_I_debug_dummy):
1766         Likewise.
1767         * include/cln/lfloat.h (cl_LF_debug_dummy): Likewise.
1768         * include/cln/modinteger.h (cl_MI_debug_dummy): Likewise.
1769         * include/cln/rational.h (cl_RA_debug_dummy): Likewise.
1770         * include/cln/real.h (cl_R_debug_dummy): Likewise.
1771         * include/cln/ring.h (cl_ring_debug_dummy): Likewise.
1772         * include/cln/sfloat.h (cl_SF_classes_dummy, cl_SF_classes_dummy):
1773         Likewise.
1774         * include/cln/string.h (cl_string_debug_dummy): Likewise.
1775         * include/cln/univpoly.h (cl_UP_debug_dummy): Likewise.
1776         * src/float/base/cl_ieee.h (cl_ieee_dummy_NNN): Likewise.
1777
1778         Avoid g++ 3.1 warnings.
1779         * src/base/cl_offsetof.h (offsetof): Redefine each time.
1780         * src/base/digitseq/cl_DS.h: Include "cl_offsetof.h" after <gmp.h>.
1781
1782         Avoid g++ 3.1 warnings.
1783         * src/base/hash/cl_hash.h (struct cl_heap_hashtable): Use typename
1784         where needed.
1785         * src/base/hash/cl_hash1.h (struct cl_heap_hashtable_1): typedef
1786         htxentry as a shortcut.
1787         * src/base/hash/cl_hash2.h (struct cl_heap_hashtable_2): Likewise.
1788         * src/base/hash/cl_hashset.h (struct cl_heap_hashtable_set): Likewise.
1789         * src/base/hash/cl_hashuniq.h (struct cl_heap_hashtable_uniq):
1790         Likewise.
1791
1792 2002-03-15  Bruno Haible  <bruno@clisp.org>
1793
1794         * cln.tex: Document problem with GNU make 3.77.
1795         Reported by Michael Somos <somos@grail.cba.csuohio.edu>.
1796
1797 2002-02-16  Richard Kreckel  <kreckel@ginac.de>
1798
1799         * cln.m4: quote macro name.
1800           Pointed out by Roberto Bagnara.
1801
1802 2002-01-20  Richard Kreckel  <kreckel@ginac.de>
1803
1804         * autoconf/config.{guess,sub}: Update to GNU version 2002-01-02.
1805           (the old one was broken on Linux/Mips.)
1806
1807 2002-01-04  Richard Kreckel  <kreckel@ginac.de>
1808
1809         * autoconf/autoconf.m4f: get brutal in order to adhere to FHS.
1810         * Version 1.1.4 released.
1811
1812 2002-01-03  Richard Kreckel  <kreckel@ginac.de>
1813
1814         * autoconf/acinclude.m4: revamp MPN-matcher.
1815         * autoconf/aclocal.m4: upgrade to autoconf-2.52 infrastructure,
1816           sync with CLisp from CVS.
1817         * autoconf/autoconf: Likewise.
1818         * autoconf/autoconf.m4f: Likewise (new file).
1819         * configure.ac: Likewise (new file, replaces configure.in).
1820         * configure.in: Likewise (deleted, replaced by configure.ac).
1821         * autoconf/config.{guess,sub}: Update to GNU version 2001-12-13.
1822         * src/Makefile.in: made VPATH safe for autoconf-2.52.
1823         * include/cln/config.h.in: Add __s390__.
1824
1825 2001-12-31  Richard Kreckel  <kreckel@ginac.de>
1826
1827         * src/base/digitseq/cl_DS.h: <gmp.h> is not included extern "C"
1828           any more since GMP4 has some C++ support in it.
1829
1830 2001-12-14  Richard Kreckel  <kreckel@ginac.de>
1831
1832         * include/cln/modules.h, include/cln/object.h: add support for
1833           s390.
1834         * src/numtheory/cl_nt_sqrtmodp.cc: workaround for GCC2.x compiler-bug
1835           on s390, provided by Gerhard Tonn.
1836
1837 2001-11-05  Richard Kreckel  <kreckel@ginac.de>
1838
1839         * autoconf/ltmain.sh: Upgrade to libtool-1.4.2.
1840         * autoconf/config.{guess,sub}: Update to GNU version 2001-09-07.
1841         * Version 1.1.3 released.
1842
1843 2001-11-04  Bruno Haible  <haible@clisp.cons.org>
1844
1845         Interoperability with gcc-3.0 -fuse-cxa-atexit.
1846         * autoconf/aclocal.m4 (CL_GLOBAL_CONSTRUCTORS): Add test whether
1847           global destructors actually exist.
1848         * include/cln/modules.h (CL_PROVIDE, CL_PROVIDE_END, CL_PROVIDE_END):
1849           Don't hack the global destructors if there is no global destructors
1850           function.
1851
1852 2001-11-03  Richard Kreckel  <kreckel@ginac.de>
1853
1854         * src/float/transcendental/cl_F_sinx.cc (sinx_naive): For small
1855           values of x, return square(x) instead of x.
1856         * src/float/transcendental/cl_F_sinhx.cc (sinhx_naive): Likewise.
1857
1858 2001-07-25  Richard Kreckel  <kreckel@ginac.de>
1859
1860         * Version 1.1.2 released.
1861
1862 2001-07-24  Richard Kreckel  <kreckel@ginac.de>
1863
1864         * src/base/hash/cl_hash.h: declare _cl_hashtable_iterator<htentry> a
1865           friend of cl_heap_hashtable<htentry>.
1866
1867 2001-07-22  Richard Kreckel  <kreckel@ginac.de>
1868
1869         * src/float/base/cl_ieee.cc: try to do magic to the FPU only if
1870           _FPU_IEEE is really defined.
1871         * include/cln/modules.h: change assembler labels from `label' to
1872           `label:' on hppa, needed by Linux (see comment).
1873         * autoconf/acinclude.m4: new file (for storing CLN-specific macros).
1874         * Makefile.devel: adjusted.
1875         * autoconf/aclocal.m4: regenerate.
1876         * src/base/low/cl_low_mul.cc: moved POD variables that are declared
1877           extern "C" elsewhere out of the namespace.
1878         * src/base/low/cl_low_div.cc: Likewise.
1879
1880 2001-06-08  Bruno Haible  <haible@clisp.cons.org>
1881
1882         * autoconf/config.{guess,sub}: Update to GNU version 2001-05-11.
1883         * autoconf/aclocal.m4: Upgrade to libtool-1.4.
1884         * autoconf/ltmain.sh: Likewise.
1885         * autoconf/ltconfig: Remove file.
1886         * autoconf/install-sh: New file.
1887         * configure.in: Add AC_CONFIG_AUX_DIR call.
1888
1889 2001-06-05  Richard Kreckel  <kreckel@ginac.de>
1890
1891         * tests/tests.cc: resolve namespace ambiguity about strcmp().
1892
1893 2001-05-31  Richard Kreckel  <kreckel@ginac.de>
1894
1895         * Version 1.1.1 released.
1896
1897 2001-05-28  Richard Kreckel  <kreckel@ginac.de>
1898
1899         * cln/cln.tex: documented problems with shared library on Sparc
1900           using gcc older than 2.95.3.
1901         * configure.in: Fixed typos in versioning docu.
1902
1903 2001-05-25  Bruno Haible  <haible@clisp.cons.org>
1904
1905         * src/base/digitseq/cl_asm_arm_.cc: Use #0x instead of #& to designate
1906           hexadecimal constants.
1907
1908 2001-05-25  Richard Kreckel  <kreckel@ginac.de>
1909
1910         * autoconf/floatparam.c (double_wordorder_bigendian_p): new symbol.
1911         * src/float/dfloat/cl_DF.h: Check for double_wordorder_bigendian_p.
1912         * Removed LiDIA interface since that is now outdated (namespace cln)
1913           and maintained elsewhere.
1914         * Adjusted dates and final touches for 1.1.1.
1915
1916 2001-05-19  Richard Kreckel  <kreckel@ginac.de>
1917
1918         * INSTALL: Update toolchain info: no egcs, some more platforms.
1919         * doc/cln.tex: Likewise.
1920
1921 2001-05-18  Richard Kreckel  <kreckel@ginac.de>
1922
1923         * src/base/cl_low.h: prepended variables declared inside macros
1924           with underscore.  Fixes equal_hashcode() on various platforms.
1925
1926 2001-04-25  Richard Kreckel  <kreckel@ginac.de>
1927
1928         * src/base/cl_low.h: Added several checks if NO_ASM is defined, so
1929           this definition becomes actually useful.  This is needed for 
1930           compilation on Arm until somebody fixes the assembler files for Arm.
1931         * src/base/digitseq/cl_asm.h: Likewise.
1932         * src/base/digitseq/cl_asm_.cc: Likewise.
1933         * */Makefile.in: Added `override' in front of `CPPFLAGS +=' so
1934            one can say `make CPPFLAGS=-DFOOBAR'.
1935
1936 2001-03-26  Arvid Norberg <c99ang@cs.umu.se>
1937
1938         * src/base/random/cl_random_from.cc: ported to beos.
1939
1940 2001-03-05  Richard Kreckel  <kreckel@ginac.de>
1941
1942         * include/cln/modules.h (CL_JUMP_TO): Fix IA64 brokenness.
1943
1944 2001-01-28  Richard Kreckel  <kreckel@ginac.de>
1945
1946         * include/cln/number.h (cl_as_N): Remove bogus comment.
1947
1948 2001-01-22  Richard Kreckel  <kreckel@ginac.de>
1949
1950         * configure.in: Make build in separate builddir possible (again).
1951
1952 2001-01-22  Richard Kreckel  <kreckel@ginac.de>
1953
1954         * include/cln/*.h: Change signatures of all classes' methods
1955           cln::cl_foo::operator new(size_t, cl_foo*) to
1956           cln::cl_foo::operator new(size_t, void*) so one can declare
1957           std::vector<cln::cl_foo>, std::list<cln::cl_foo> etc. for
1958           certain STL implementations (like libstdc++-v3).
1959
1960 2000-12-14  Richard Kreckel  <kreckel@ginac.de>
1961
1962         * Version 1.1 released.
1963
1964 2000-12-13  Richard Kreckel  <kreckel@ginac.de>
1965
1966         * */*: cl_istream -> std::istream, cl_ostream -> std::ostream.
1967
1968 2000-12-05  Richard Kreckel  <kreckel@ginac.de>
1969
1970         * Makefile.in, src/Makefile.in, doc/Makefile.in: Use mkdir -p.
1971         * include/cln/version.h.in, src/base/verion.cc: New files.
1972         * configure.in: Generate include/cln/version.h.
1973         * cln.m4: Rewrote it. Check result of cln-config without compiling.
1974           Do cross-check library version and header version information.
1975
1976 2000-12-02  Christian Bauer  <cbauer@ginac.de>
1977
1978         * Makefile.in, src/Makefile.in, doc/Makefile.in: Added $DESTDIR.
1979         * cln.m4, cln.spec.in: some minor fixes with respect to RPM package
1980           building.
1981
1982 2000-11-24  Richard Kreckel  <kreckel@ginac.de>
1983
1984         * */*: Removed problematic stdin, stdout and stderr definitions.  
1985           Use std::cin, std::cout, std::cerr instead (obsoletes 2000-10-29).
1986
1987 2000-11-20  Bruno Haible
1988
1989         * cln-config.1: change title.
1990
1991 2000-11-18  Richard Kreckel  <kreckel@ginac.de>
1992
1993         * cln.m4: New file.
1994         * doc/cln.tex: Document package tools cln-config and cln.m4.
1995         * Makefile.in: Care about cln.m4.
1996
1997 2000-11-17  Richard Kreckel  <kreckel@ginac.de>
1998
1999         * cln-config.1: added manpage, as required by a couple of distros.
2000         * Makefile.in, doc/Makefile.in: target install depends on installdirs.
2001
2002 2000-11-16  Richard Kreckel  <kreckel@ginac.de>
2003
2004         * autoconf/aclocal.m4 (CL_GMP_SET_UINTD): New macro...
2005         * configure.in: ...used here.
2006         * include/cln/config.h.in: Put in macros defined by CL_GMP_SET_UINTD...
2007         * include/cln/types.h: ...used here.
2008         * autoconf/acgeneral.m4, autoconf/aclocal.m4: Adhere to FHS.
2009
2010 2000-11-13  Richard Kreckel  <kreckel@ginac.de>
2011
2012         * src/base/digitseq/cl_asm.h: Test if (intDsize==32) for MIPS and HPPA,
2013           in order to guard against an accidented configuration.
2014         * src/integer/conv/cl_I_to_digits.cc (table): member b_hoch_k of 
2015           struct power_table_entry initialized as ULL instead of as UL, if 
2016           intDsize==64 (caused misprinting on MIPS w/ GMP).
2017         * src/base/cl_macros.h (minus_bitm, bitc): implemented ULL, if 
2018           HAVE_FAST_LONGLONG.
2019         * src/integer/bitwise/cl_I_mkfx.cc (mkf_extract): Likewise.
2020         * src/integer/conv/cl_I_from_L.cc (cl_I_from_L): Added trival 
2021           generation of Bignum for intDsize==64 and a notreached-check at end.
2022         * autoconf/config.guess, autoconf/config.sub: updated from FSF.
2023         * include/cln/config.h.in: Prepared support for IA64.
2024         * include/cln/types.h: Likewise.
2025         * include/cln/object.h: Likewise.
2026         * include/cln/modules.h: Likewise.
2027         * src/base/cl_macros.h (nonreturning_function): Likewise (NUE's 
2028           compiler claims __GNUC_MINOR__==9).
2029
2030 2000-11-03  Richard Kreckel  <kreckel@ginac.de>
2031
2032         * src/base/cl_macros.h (bit, minus_bit): changed criterion for ULL from
2033           HAVE_DD to HAVE_FAST_LONGLONG.
2034         * src/base/cl_macros.h (bitm): implemented ULL, if HAVE_FAST_LONGLONG.
2035         * src/base/cl_low.h: actually no need to include "cln/types.h" here.
2036         * src/base/cl_low.h (logcount_64): always ULL, independent of HAVE_DD.
2037         * src/base/random/cl_UL_random.cc (random32): a is always ULL.
2038
2039 2000-11-01  Richard Kreckel  <kreckel@ginac.de>
2040
2041         * include/cln/object.h (cl_combine): define additional signatures, if
2042           HAVE_LONGLONG is defined, in order to keep the compiler happy.
2043         * src/base/cl_macros.h: include "cln/types.h", since we need HAVE_DD...
2044         * src/base/cl_macros.h (bit): ...for this macro...
2045         * src/base/cl_macros.h (minus_bit): ...and this one.
2046         * src/base/cl_low.h: include "cln/types.h", since we need HAVE_DD...
2047         * src/base/cl_low.h (logcount_64): ...for this macro.
2048         * src/base/random/cl_UL_random.cc (random32): if HAVE_DD a is an ULL.
2049         * src/integer/gcd/cl_I_gcd_aux2.cc (floorDD): fixed algorithmic bug.
2050           that turned up when intDsize==32 and cl_word_size==64.
2051         * src/float/dfloat/elem/cl_DF_div.cc (operator/): fixed a missing cast
2052           to uint64 that turned up when intDsize==32 and cl_word_size==64.
2053
2054 2000-10-29  Richard Kreckel  <kreckel@ginac.de>
2055
2056         * src/real/input/cl_R_read.cc, src/complex/input/cl_N_read.cc:
2057           #undef stderr, if it's defined so cln::stderr isn't confused.
2058         * src/base/input/cl_read_globals.cc: stdin should not be extern.
2059
2060 2000-09-05  Richard Kreckel  <kreckel@ginac.de>
2061
2062         * include/cln/number.h (As): Fix it in namespace by suffixing `_As'
2063           to the appropiate method instead of prefixing `as_'.
2064         * src/complex/misc/cl_N_as.cc (cl_N_As): Likewise.
2065         * src/real/misc/cl_R_as.cc (cl_R_As): Likewise.
2066         * src/rational/misc/cl_RA_as.cc (cl_RA_As): Likewise.
2067         * src/integer/misc/cl_I_as.cc (cl_I_As): Likewise.
2068         * src/float/misc/cl_F_as.cc (cl_F_As): Likewise.
2069         * src/float/sfloat/misc/cl_SF_as.cc (cl_SF_As): Likewise.
2070         * src/float/lfloat/misc/cl_LF_as.cc (cl_LF_As): Likewise.
2071         * src/float/ffloat/misc/cl_FF_as.cc (cl_FF_As): Likewise.
2072         * src/float/dfloat/misc/cl_DF_as.cc (cl_DF_As): Likewise.
2073
2074 2000-09-05  Richard Kreckel  <kreckel@ginac.de>
2075
2076         * src/complex/transcendental/cl_C_expt_C.cc (expt): fix logic for
2077           the 0^y cases.
2078
2079 2000-08-30  Richard Kreckel  <kreckel@ginac.de>
2080
2081         * include/cln/number.h, cl_number::_as_cl_private_thing(): removed.
2082           Rearranged for a clearer distinction between macros and remaining
2083           identifiers, so Cint can parse it smoothly.
2084
2085 2000-08-29  Richard Kreckel  <kreckel@ginac.de>
2086
2087         * include/cln/number.h, the(const cl_number& x): New template
2088           function.
2089
2090 2000-08-29  Richard Kreckel  <kreckel@ginac.de>
2091
2092         * */*: Pushed CLN into a namespace `cln'.  While doing so, the
2093           following identifiers got their poor-man's namespace (i.e. the 
2094           prefix `cl_') stripped off:
2095           cl_catalanconst()        ->  catalanconst()
2096           cl_compare()             ->  compare()
2097           cl_cos_sin()             ->  cos_sin()
2098           cl_cos_sin_t             ->  cos_sin_t
2099           cl_cosh_sinh()           ->  cosh_sinh()
2100           cl_cosh_sinh_t           ->  cosh_sinh_t
2101           cl_decoded_dfloat        ->  decoded_dfloat
2102           cl_decoded_ffloat        ->  decoded_ffloat
2103           cl_decoded_float         ->  decoded_float
2104           cl_decoded_lfloat        ->  decoded_lfloat
2105           cl_decoded_sfloat        ->  decoded_sfloat
2106           cl_default_float_format  ->  default_float_format
2107           cl_default_print_flags   ->  default_print_flags
2108           cl_default_random_state  ->  default_random_state
2109           cl_double_approx()       ->  double_approx()
2110           cl_equal()               ->  equal()
2111           cl_equal_hashcode()      ->  equal_hashcode()
2112           cl_eulerconst()          ->  eulerconst()
2113           cl_find_modint_ring()    ->  find_modint_ring()
2114           cl_find_univpoly_ring()  ->  find_univ_poly_ring()
2115           cl_float_approx()        ->  float_approx
2116           cl_float_format()        ->  float_format()
2117           cl_float_format_t        ->  float_format_t
2118           cl_free_hook()           ->  free_hook()
2119           cl_hermite()             ->  hermite()
2120           cl_laguerre()            ->  laguerre()
2121           cl_legendre()            ->  legandre()
2122           cl_malloc_hook()         ->  malloc_hook()
2123           cl_pi()                  ->  pi()
2124           cl_tschebychev()         ->  tschebychev()
2125           cl_zeta()                ->  zeta()
2126           NB: For functions these changes includes all signatures.
2127         * include/*: moved to include/cln/*, stripped `cl_' off filenames.
2128         * cln-config.in: new file.
2129
2130 2000-08-26  Bruno Haible  <haible@clisp.cons.org>
2131
2132         * autoconf/acgeneral.m4 (AC_OUTPUT): Use braces in exec_prefix default
2133           value, not parens.
2134
2135 2000-08-18  Bruno Haible  <haible@clisp.cons.org>
2136
2137         * include/cl_univpoly_modint.h: Fix typo.
2138
2139 2000-07-13  Bruno Haible  <haible@clisp.cons.org>
2140
2141         * src/float/input/cl_F_read_stream.cc (number_char_p): Accept '_',
2142           used as precision marker for floats.
2143           Reported by Keith Briggs (in 1998) and Thomas Roessler.
2144         * src/integer/input/cl_I_read_stream.cc (number_char_p): Likewise.
2145         * src/rational/input/cl_RA_read_stream.cc (number_char_p): Likewise.
2146         * src/real/input/cl_R_read_stream.cc (number_char_p): Likewise.
2147         * src/complex/input/cl_N_read_stream.cc (number_char_p): Likewise.
2148
2149 2000-06-22  Bruno Haible  <haible@clisp.cons.org>
2150
2151         * include/cl_object.h: Rename cl_word_size to cl_pointer_size.
2152         * include/cl_types.h (HAVE_FAST_LONGLONG): Also define on Irix6
2153           with N32 ABI.
2154           (cl_word_size): New macro.
2155         * src/float/sfloat/cl_SF.h: Use cl_pointer_size instead of
2156           cl_word_size.
2157
2158 2000-05-31  Bruno Haible  <haible@clisp.cons.org>
2159
2160         * tests/exam_I_floor.cc (integer_floor_tests): Add one more entry.
2161           From a sample that fails with gcc-2.95.2 on Sparc.
2162         * tests/exam_I_gcd.cc (integer_gcd_tests): Likewise.
2163
2164 2000-05-30  Richard Kreckel  <kreckel@ginac.de>
2165
2166         * configure.in, autoconf/aclocal.m4 (CL_GMP_H_VERSION, CL_GMP_CHECK):
2167           New macros.
2168         * configure.in, include/cl_config.h.in (CL_VERSION, CL_VERSION_MINOR,
2169           CL_VERSION_PATCHLEVEL): New definitions.
2170         * autoconf/config.guess, autoconf/config.sub, autoconf/ltconfig,
2171           autoconf/ltmain.sh: updated from FSF (libtool 1.3.5, etc).
2172         * src/Makefile.in, configure.in: release-variables renamed from 
2173           CLN_* to CL_*.
2174         * configure.in: default to build both shared and static library
2175           (i.e. default to the most common behaviour).
2176
2177 2000-05-29  Richard Kreckel  <kreckel@ginac.de>
2178
2179         * autoconf/aclocal.m4 (CL_CANONICAL_HOST): Added missing changequote
2180           environment around the patch of 2000-05-23.
2181
2182 2000-05-29  Bruno Haible  <haible@clisp.cons.org>
2183
2184         * autoconf/aclocal.m4 (CL_PROG_INSTALL): Fix typo.
2185           Reported by Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>.
2186
2187 2000-05-27  Richard Kreckel  <kreckel@ginac.de>
2188
2189         * src/float/lfloat/algebraic/cl_LF_sqrt.cc,
2190           src/base/digitseq/cl_DS_sqrt.cc: Readjusted break-even points.
2191
2192 2000-05-24  Richard Kreckel  <kreckel@ginac.de>
2193
2194         * autoconf/config.*: Updated to new version from FSF
2195           (the new libtool wants this).
2196         * src/Makefile.in: added $(LDFLAGS) to link step.
2197         * src/base/digitseq/cl_2DS_div.cc, cl_2DS_recip.cc: Readjusted 
2198           break-even points.
2199
2200 2000-05-23  Bruno Haible  <haible@clisp.cons.org>
2201
2202         * autoconf/aclocal.m4 (CL_CANONICAL_HOST): Determine host_cpu,
2203           host_vendor, host_os correctly if $host has more than two hyphens.
2204
2205 2000-05-19  Richard Kreckel  <kreckel@ginac.de>
2206
2207         * src/base/digitseq/cl_DS_mul.cc: Rearranged break-even points to
2208           better match present-day CPUs whenever GMP3 is used.
2209         * src/base/digitseq/cl_DS_div.cc: dto. 
2210         * src/TUNING: Added comment about order of tuning.
2211         * configure, configure.in: Safer GMP3-detection.
2212         * INSTALL.generic: Clarified behaviour of --with-gmp.
2213         * autoconf/config.guess: updated from Clisp-2000-03-06 sources.
2214
2215 2000-05-04  Richard Kreckel  <kreckel@ginac.de>
2216
2217         * gmp/: removed completely.  From now on we are going to link
2218           externally against libgmp3.0 or above!
2219         * configure, configure.in, Makefile.in, */Makeflags: removed support
2220           of internal gmp 2.0.2, like $GMP_INCLUDES, which should be done by
2221           setting $CPPFLAGS instead.
2222         * Makefile.in: Added libtool inter-library dependency for -lgmp and
2223           conforming interface versioning (-version-info).
2224         * autoconf/ltconfig, autoconf/ltmain.sh: Updated to newer versions
2225           from libtool 1.3.4.
2226
2227 2000-02-22  Bruno Haible  <haible@clisp.cons.org>
2228
2229         * src/base/digitseq/cl_asm_mips_.cc: Starting at argument 5 the
2230           parameter passing was changed for the MIPS n32 ABI.
2231
2232 2000-01-24  Richard Kreckel  <kreckel@ginac.de>
2233
2234         * gmp/*: Replaced the complete mpn sources with the ones from
2235           Debian since they are maintained while the ones from FSF
2236           aren't and there were problems on some architectures, PowerPC
2237           in particular.  See the file gmp/README.CLN.  This way the
2238           hard links in this directory have vanished, they were causing
2239           trouble for people working in AFS.  This became necessary for
2240           Debian, because there it woudn't compile on PPC.
2241
2242 2000-01-13  Richard Kreckel  <kreckel@ginac.de>
2243
2244         * Version 1.0.3 released.
2245
2246 2000-01-13  Richard Kreckel  <kreckel@ginac.de>
2247
2248         * src/base/cl_macros.h (nonreturning_function): For egcs and newer
2249           use __attribute__ ((__noreturn__)) instead of the __volatile__
2250           storage class.
2251           (nonreturning): Remove macro.
2252         * include/*: Minor fixes to stop -ansi -pedantic from complaining.
2253         * include/cl_integer.h: (doublefactorial): New declaration.
2254         * src/integer/misc/combin/cl_I_doublefactorial.cc: New file.
2255
2256 1999-12-18  Bruno Haible  <haible@clisp.cons.org>
2257
2258         * autoconf/acgeneral.m4 (AC_ARG_PROGRAM): Create conftestsed using
2259           "cat", not "echo".
2260         * autoconf/ltconfig: Improve support for recent FreeBSD 3.
2261         * include/cl_GV.h (cl_GV_vectorops): Change return type from 'T' to
2262           'const T', to match definition in src/vector/cl_GV_number.cc.
2263           Reported by Duncan Simpson <dps@io.stargate.co.uk>.
2264         * gmp/mpn/Makefile.in (.S.lo): Use 'if', not '&&', because '&&' may
2265           yield return code 1.
2266
2267 1999-09-07  Bruno Haible  <haible@clisp.cons.org>
2268
2269         * Version 1.0.2 released.
2270
2271 1999-09-06  Bruno Haible  <haible@clisp.cons.org>
2272
2273         * src/rational/cl_RA.h (integerp, ratiop): Instead of returning a
2274           boolean expression, write alternatives ending with either
2275           "return cl_true;" or "return cl_false;". This way, g++ does a
2276           better job inlining it.
2277         * src/float/cl_F.h (longfloatp): Likewise.
2278         * src/real/cl_R.h (rationalp, integerp, floatp): Likewise.
2279         * src/complex/cl_C.h (realp, complexp): Likewise.
2280
2281 1999-09-05  Bruno Haible  <haible@clisp.cons.org>
2282
2283         * include/cl_integer.h (cl_equal_hashcode): New declaration.
2284         * include/cl_rational.h (cl_equal_hashcode): New declaration.
2285         * include/cl_sfloat.h (cl_equal_hashcode): New declaration.
2286         * include/cl_ffloat.h (cl_equal_hashcode): New declaration.
2287         * include/cl_dfloat.h (cl_equal_hashcode): New declaration.
2288         * include/cl_lfloat.h (cl_equal_hashcode): New declaration.
2289         * include/cl_float.h (cl_equal_hashcode): New declaration.
2290         * include/cl_real.h (cl_equal_hashcode): New declaration.
2291         * include/cl_complex.h (cl_equal_hashcode): New declaration.
2292         * src/base/cl_N.h (equal_hashcode_low, equal_hashcode_one): New macros.
2293         * src/integer/misc/cl_I_eqhashcode.cc: New file.
2294         * src/rational/misc/cl_RA_eqhashcode.cc: New file.
2295         * src/float/sfloat/misc/cl_SF_eqhashcode.cc: New file.
2296         * src/float/ffloat/misc/cl_FF_eqhashcode.cc: New file.
2297         * src/float/dfloat/misc/cl_DF_eqhashcode.cc: New file.
2298         * src/float/lfloat/misc/cl_LF_eqhashcode.cc: New file.
2299         * src/float/misc/cl_F_eqhashcode.cc: New file.
2300         * src/real/misc/cl_R_eqhashcode.cc: New file.
2301         * src/complex/misc/cl_C_eqhashcode.cc: New file.
2302         * doc/cln.tex: Document `cl_equal_hashcode'.
2303
2304 1999-09-05  Bruno Haible  <haible@clisp.cons.org>
2305
2306         * include/cl_ring.h (cl_number_ring_ops): Add `contains' member.
2307           (cl_number_ring): New class.
2308           (cl_specialized_number_ring<T>): Inherit from cl_number_ring.
2309           (instanceof): New function.
2310         * src/integer/ring/cl_I_ring.cc (cl_I_p): New function.
2311         * src/integer/misc/cl_I_as.cc (cl_I_p): Add comment.
2312         * src/rational/ring/cl_RA_ring.cc (cl_RA_p): New function.
2313         * src/rational/misc/cl_RA_as.cc (cl_RA_p): Add comment.
2314         * src/real/ring/cl_R_ring.cc (cl_R_p): New function.
2315         * src/real/misc/cl_R_as.cc (cl_R_p): Add comment.
2316         * src/complex/ring/cl_C_ring.cc (cl_N_p): New function.
2317         * src/complex/misc/cl_N_as.cc (cl_N_p): Add comment.
2318         * doc/cln.tex: Document `instanceof'.
2319
2320 1999-09-05  Bruno Haible  <haible@clisp.cons.org>
2321
2322         * include/cl_rational.h (numerator, denominator): New declarations.
2323         * src/rational/elem/cl_RA_numerator.cc: New file.
2324         * src/rational/elem/cl_RA_denominator.cc: New file.
2325         * include/cl_integer.h (numerator, denominator): New inline functions.
2326         * doc/cln.tex: Document `numerator' and `denominator'.
2327
2328 1999-09-05  Bruno Haible  <haible@clisp.cons.org>
2329
2330         * src/rational/algebraic/cl_RA_rootp.cc (rootp): Fix endless loop
2331           in the integer case.
2332         * src/rational/algebraic/cl_RA_rootp_I.cc (rootp): Likewise.
2333
2334 1999-09-05  Bruno Haible  <haible@clisp.cons.org>
2335
2336         * include/cl_config.h.in: Support for sparc64 CPU.
2337         * include/cl_modules.h: Likewise.
2338         * include/cl_types.h: Likewise.
2339         * include/cl_object.h: Likewise.
2340         * include/cl_GV.h: Likewise.
2341         * src/Makefile.in: Likewise.
2342         * src/base/cl_alloca.h: Likewise.
2343         * src/base/cl_macros.h: Likewise.
2344         * src/base/cl_sysdep.h: Likewise.
2345         * src/base/cl_low.h: Likewise.
2346         * src/base/digitseq/cl_asm.h: Likewise.
2347         * src/base/digitseq/cl_asm_.cc: Likewise.
2348         * src/base/digitseq/cl_asm_sparc64.h: New file.
2349         * src/base/digitseq/cl_asm_sparc64_.cc: New file.
2350         * src/modinteger/cl_MI_int.h: Support for sparc64 CPU.
2351         * src/polynomial/elem/cl_UP_no_ring.cc: Likewise.
2352         * src/polynomial/elem/cl_UP_GF2.h: Likewise.
2353         * src/polynomial/elem/cl_asm_GF2.cc: Likewise.
2354
2355 1999-09-04  Bruno Haible  <haible@clisp.cons.org>
2356
2357         * src/base/digitseq/cl_asm_sparc_.cc (orc2_loop_up, orc2_loop_down):
2358           Use the `orn' instruction.
2359
2360 1999-08-14  Bruno Haible  <haible@clisp.cons.org>
2361
2362         Assume all platforms have <stdlib.h> and clock_t.
2363         * configure.in: Don't call CL_STDLIB_H and CL_CLOCK_T.
2364         * src/base/cl_base_config.h.in (CLOCK_T): Remove definition.
2365         * src/base/random/cl_random_from.cc: Use clock_t instead of CLOCK_T.
2366         * src/timing/cl_t_config.h.in (CLOCK_T): Remove definition.
2367         * src/timing/cl_t_current2.cc: Use clock_t instead of CLOCK_T.
2368
2369 1999-07-18  Bruno Haible  <haible@clisp.cons.org>
2370
2371         * gmp/config.guess: Link to autoconf/config.guess.
2372           gmp/config.sub: Link to autoconf/config.sub.
2373           Needed for Win32 platforms.
2374
2375 1999-07-17  Bruno Haible  <haible@clisp.cons.org>
2376
2377         * autoconf/aclocal.m4 (CL_CANONICAL_HOST_CPU): Distinguish "sparc" and
2378           "sparc64" according to the C compiler, not the uname result.
2379
2380 1999-06-17  Bruno Haible  <haible@clisp.cons.org>
2381
2382         * src/base/digitseq/cl_asm_sparc_.cc (compare_loop_up): Fix
2383           COUNTER_LOOPS version, fortunately not used yet.
2384
2385         * include/cl_modules.h: Prepare for gcc version 3.
2386
2387 1999-06-12  Bruno Haible  <haible@clisp.cons.org>
2388
2389         * src/rational/elem/cl_RA_plus.cc, src/rational/elem/cl_RA_minus.cc:
2390           Change the last call from I_I_to_RT to I_I_to_RA.
2391
2392 1999-06-09  Bruno Haible  <haible@clisp.cons.org>
2393
2394         * Version 1.0.1 released.
2395
2396 1999-06-09  Bruno Haible  <haible@clisp.cons.org>
2397
2398         * src/integer/cl_I.h (pFN_maxlength_digits_at): Define also when
2399           intDsize==64.
2400
2401 1999-06-08  Bruno Haible  <haible@clisp.cons.org>
2402
2403         * autoconf/intparam.c (printf_underscored): Change argument type to
2404           `const char*'.
2405         * include/cl_modules.h (CL_OUTPUT_LABEL, CL_JUMP_TO): New macros.
2406           (CL_PROVIDE, CL_PROVIDE_END): Use them.
2407         * include/cl_string.h (cl_heap_string::operator new): Return 1, not 0.
2408         * include/cl_GV.h (cl_GV_inner<T>::operator new): Likewise.
2409         * src/base/ring/cl_no_ring.cc (dummy_canonhom, dummy_expt_pos): Don't
2410           cast a cl_I to void here. Works around a bug in g++-2.95.
2411         * src/complex/misc/cl_C_class.cc: Include "cl_C.h".
2412         * src/polynomial/elem/cl_UP_no_ring.cc (dummy_canonhom,
2413            dummy_expt_pos): Don't cast a cl_I to void here. Works around a bug
2414           in g++-2.95.
2415         * src/polynomial/elem/cl_asm_sparc_GF2.cc (DECLARE_FUNCTION): New
2416           macro.
2417         * src/rational/misc/cl_RA_class.cc: Include "cl_RA.h".
2418         * src/vector/cl_GV_I.cc (cl_heap_GV_I_general::operator new,
2419            DEFINE_cl_heap_GV_I_bits): Return 1, not 0.
2420         * src/vector/cl_GV_number.cc (cl_heap_GV_number_general::operator new):
2421           Likewise.
2422
2423 1999-06-01  Bruno Haible  <haible@clisp.cons.org>
2424
2425         * autoconf/aclocal.m4 (CL_CANONICAL_HOST_CPU): Canonicalize alpha
2426           variants to alpha.
2427
2428 1999-05-29  Bruno Haible  <haible@clisp.cons.org>
2429
2430         * src/base/digitseq/cl_asm_i386_.cc (DECLARE_FUNCTION): Treat
2431           OpenBSD like NetBSD.
2432         * src/base/digitseq/cl_asm_sparc_.cc (DECLARE_FUNCTION): Likewise.
2433         * src/base/digitseq/cl_asm_m68k_.cc (DECLARE_FUNCTION): Treat
2434           OpenBSD like NetBSD, and Linux/ELF like SVR4.
2435
2436 1999-05-16  Bruno Haible  <haible@clisp.cons.org>
2437
2438         * src/base/cl_low.h (integerlength32) [__rs6000__]: Use old assembler
2439           syntax on AIX systems and new assembler syntax on non-AIX systems.
2440
2441 1999-05-01  Bruno Haible  <haible@clisp.cons.org>
2442
2443         * autoconf/config.guess, autoconf/config.sub: Upgrade to newest
2444           version from GNU CVS.
2445
2446 1999-04-24  Bruno Haible  <haible@clisp.cons.org>
2447
2448         * src/integer/bitwise/cl_I_logand.cc (logand): Optimize the case when
2449           either operand is a positive fixnum, O(1) instead of O(N).
2450         * src/integer/bitwise/cl_I_lognand.cc (lognand): Likewise.
2451         * src/integer/bitwise/cl_I_logandc2.cc (logandc2): Likewise for the
2452           first operand.
2453
2454 1999-04-14  Bruno Haible  <haible@clisp.cons.org>
2455
2456         * autoconf/aclocal.m4 (CL_GLOBAL_CONSTRUCTORS): Add check whether
2457           ctor/dtor needs to be exported.
2458         * include/cl_config.h.in (CL_NEED_GLOBALIZE_CTORDTOR): New macro.
2459         * include/cl_modules.h (CL_GLOBALIZE_JUMP_LABEL): Renamed from
2460           CL_GLOBALIZE_LABEL.
2461           (CL_GLOBALIZE_LABEL): New macro.
2462           (CL_GLOBALIZE_CTORDTOR_LABEL): Renamed from CL_GLOBALIZE_ASM_LABEL.
2463           (CL_PROVIDE): Update.
2464
2465 1999-04-12  Bruno Haible  <haible@clisp.cons.org>
2466
2467         * src/Makefile.in ($(ASMFILES_S)): On HPPA, ignore preprocessing
2468           errors ("unterminated string or character constant").
2469           ($(ASMFILES_LO)): On HPPA, try with various settings of
2470           COMPILER_PATH, in order to try /usr/ccs/bin/as and /bin/as.
2471
2472 1999-04-11  Bruno Haible  <haible@clisp.cons.org>
2473
2474         * INSTALL: Mention gmp problems on MIPS.
2475         * doc/cln.tex: Likewise.
2476
2477 1999-03-24  Mumit Khan  <khan@xraylith.wisc.edu>
2478
2479         * src/Makefile.in (SUBDIRS): Filter out CVS and RCS directories from
2480           the source tree.
2481         * include/cl_modules.h (CL_GLOBALIZE_LABEL): Define for Win32.
2482           (CL_GLOBALIZE_ASM_LABEL): New macro.
2483           (CL_PROVIDE): Use it.
2484         * src/base/random/cl_random_from.cc: Handle WIN32.
2485         * src/timing/cl_t_current.cc: Likewise.
2486
2487 1999-03-15  Bruno Haible  <haible@clisp.cons.org>
2488
2489         * autoconf/intparam.c (main7): Use %lX instead of %X for a `long'.
2490           (main8): Adapt for C++.
2491
2492 1999-03-09  Bruno Haible  <haible@clisp.cons.org>
2493
2494         * INSTALL: Mention egcs-1.1 problems on Sparc.
2495         * doc/cln.tex: Likewise.
2496
2497 1999-03-08  Bruno Haible  <haible@clisp.cons.org>
2498
2499         * autoconf/aclocal.m4 (CL_FPU_CONTROL): Fix the "checking for"
2500           messages.
2501
2502 1999-02-25  Bruno Haible  <haible@clisp.cons.org>
2503
2504         * autoconf/aclocal.m4: In test programs, declare `int main()', not
2505           `main()'.
2506
2507         * lidia-interface/src/interfaces/integers/cln/bigint.c
2508           (bigint_to_string): Fix for negative arguments.
2509
2510         * src/base/cl_low.h: Check for `__sparc__', not `SPARC'.
2511         * src/base/cl_alloca.h: Likewise.
2512
2513         * src/base/cl_low.h: Eliminate CLISP style "# " comments.
2514         * src/base/digitseq/cl_asm_arm_.cc,
2515           src/base/digitseq/cl_asm_mips_.cc,
2516           src/float/dfloat/elem/cl_DF_mul.cc: Likewise.
2517
2518         * src/modinteger/cl_MI_pow2.h,
2519           src/modinteger/cl_MI_pow2m1.h,
2520           src/modinteger/cl_MI_pow2p1.h: Workaround g++-2.7.2 inlining bug.
2521
2522 1999-01-18  Bruno Haible  <haible@clisp.cons.org>
2523
2524         * autoconf/acgeneral.m4,
2525           autoconf/acspecific.m4: Upgrade to autoconf-2.13.
2526         * autoconf/config.guess, autoconf/config.sub: Likewise.
2527         * autoconf/aclocal.m4 (CL_ALLOCA): Test for _MSC_VER and alloca being
2528           a macro. Use ${ac_objext}.
2529         * src/base/cl_macros.h (alloca): Put _MSC_VER test before the others,
2530           conforming with CL_ALLOCA.
2531
2532 1999-01-12  Bruno Haible  <haible@clisp.cons.org>
2533
2534         * Version 1.0 released.
2535