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