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