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