Bruno Haible
9283a24699
Fix a bug in FN_to_NDS in configurations where intDsize < intPsize.
18 years ago
Richard Kreckel
c706f4b04e
Re-esatblish 1.2.0 ABI, broken 2008-02-22 [Alexei Sheplyakov].
* src/float/input/cl_F_readparsed.cc: Add obsolete signature with index
args uintL.
* src/integer/input/cl_I_readparsed.cc: Likewise.
* src/rational/input/cl_RA_readparsed.cc: Likewise.
18 years ago
Richard Kreckel
3a8c34e9a6
Make index variables uintC.
18 years ago
Richard Kreckel
b044ba9e36
Fix crash in output of huge numbers.
18 years ago
Richard Kreckel
ce250e91fb
Fix linking problems on some platforms caused by inline/non-inline versions
of same functions (obsoletes MAYBE_INLINE) [by Alexei Sheplyakov].
18 years ago
Richard Kreckel
665c18cd37
* */*: Convert encoding from ISO 8859-1 to UTF-8.
18 years ago
Richard Kreckel
5370ad8054
* */*: Remove cl_boolean, cl_true, and cl_false in favor of built-in
C++ bool, true, and false.
18 years ago
Richard Kreckel
c486b78a1a
Remove exception hooks in favor of real C++ exceptions:
* include/cln/exception.h: New file...
* include/cln/cln.h: ...included here...
* include/cln/rational.h: ...and here.
* include/cln/abort.h: Removed.
* include/cln/integer.h (ash_exception, exquo_exception): Add exception
types.
* include/cln/float.h (floating_point_exception,
floating_point_nan_exception, floating_point_overflow_exception,
floating_point_underflow_exception): Likewise.
* include/cln/number_io.h (read_number_exception,
read_number_bad_syntax_exception, read_number_junk_exception,
read_number_eof_exception): Likewise.
* include/cln/object.h (CL_DEFINE_CONVERTER): Replace dynamic assertion
with a compile-time assertion.
* include/cln/GV.h: Replace nonreturning functions with exceptions.
* include/cln/modinteger.h: Likewise.
* include/cln/SV.h: Likewise.
* include/cln/ring.h: Likewise.
* include/cln/string.h: Likewise.
* include/cln/univpoly.h: Likewise.
* src/base/cl_abort.cc: Removed.
* src/base/cl_N_err_d0.cc: Removed.
* src/base/cl_d0_exception.cc: New file.
* src/base/cl_as_err.cc: Removed.
* src/base/cl_as_exception.cc: New file.
* src/base/cl_notreached.cc: Removed.
* src/base/cl_notreached_exception.cc: New file.
* src/base/input/cl_read_err_bad.cc: Removed.
* src/base/input/cl_read_bad_syntax_exception.cc: New file.
* src/base/input/cl_read_err_junk.cc: Removed.
* src/base/input/cl_read_junk_exception.cc: New file.
* src/base/input/cl_read_err_eof.cc: Removed.
* src/base/input/cl_read_eof_exception.cc: New file.
* src/base/cl_N.h (cl_as_error): Removed (see cln/exception.h).
* src/base/macros.h (NOTREACHED): Throw.
* src/base/cl_malloc.cc (xmalloc): Throw.
* src/base/digitseq/cl_2DS_div.cc: Throw.
* src/base/digitseq/cl_DS_div.cc: Throw.
* src/base/digitseq/cl_DS_mul.cc: Throw.
* src/base/digitseq/cl_DS_mul_fftc.h: Throw.
* src/base/digitseq/cl_DS_mul_fftcs.h: Throw.
* src/base/digitseq/cl_DS_mul_fftm.h: Throw.
* src/base/digitseq/cl_DS_mul_fftp.h: Throw.
* src/base/digitseq/cl_DS_mul_fftp3.h: Throw.
* src/base/digitseq/cl_DS_mul_fftp3m.h: Throw.
* src/base/digitseq/cl_DS_mul_fftr.h: Throw.
* src/base/digitseq/cl_DS_mul_nuss.h: Throw.
* src/base/digitseq/cl_DS_recipsqrt.cc: Throw.
* src/base/digitseq/cl_DS_sqrt.cc: Throw.
* src/base/hash/cl_hash.h: Throw.
* src/base/hash/cl_hash1.h: Throw.
* src/base/hash/cl_hash1weak.h: Throw.
* src/base/hash/cl_hash2.h: Throw.
* src/base/hash/cl_hash2weak.h: Throw.
* src/base/hash/cl_hashset.h: Throw.
* src/base/hash/cl_hashuniq.h: Throw.
* src/base/hash/cl_hashuniqweak.h: Throw.
* src/base/proplist/cl_pl_add.cc: Throw.
* src/base/ring/cl_no_ring.cc: Throw.
* src/base/string/cl_spushstring.h: Throw.
* src/base/symbol/cl_symbol.cc: Throw.
* src/integer/bitwise/cl_I_ash.h: Removed (see cln/integer.h.)
* src/integer/bitwise/cl_I_asherr.cc: Removed.
* src/integer/bitwise/cl_I_ash_exception.cc: New file.
* src/integer/division/cl_I_exquoerr.cc: Removed.
* src/integer/division/cl_I_exquo_exception.cc: New file.
* src/integer/cl_I.h: Throw.
* src/integer/division/cl_I_exquopos.cc: Throw.
* src/integer/bitwise/cl_I_logbitp_I.cc: Throw.
* src/integer/bitwise/cl_I_ash.cc: Throw.
* src/integer/bitwise/cl_I_ash_I.cc: Throw.
* src/integer/division/cl_I_exquo.cc: Throw.
* src/integer/gcd/cl_I_gcd_aux2.cc: Throw.
* src/integer/conv/cl_I_to_L.cc: Throw.
* src/integer/conv/cl_I_to_Q.cc: Throw.
* src/integer/conv/cl_I_to_UL.cc: Throw.
* src/integer/conv/cl_I_to_UQ.cc: Throw.
* src/integer/conv/cl_I_to_digits.cc: Throw.
* src/integer/elem/cl_I_div.cc: Throw.
* src/integer/algebraic/cl_I_sqrt.cc: Throw.
* src/integer/input/cl_I_read.cc: Throw.
* src/integer/input/cl_I_read_stream.cc: Throw.
* src/integer/misc/cl_I_as.cc: Throw.
* src/rational/elem/cl_RA_from_I_I_div.cc: Throw.
* src/rational/elem/cl_RA_recip.cc: Throw.
* src/rational/input/cl_RA_read.cc: Throw.
* src/rational/input/cl_RA_read_stream.cc: Throw.
* src/rational/input/cl_RA_readparsed.cc: Throw.
* src/rational/misc/cl_RA_as.cc: Throw.
* src/float/base/cl_F_err_nan.cc: Removed.
* src/float/base/cl_F_nan_exception.cc: New file.
* src/float/base/cl_F_err_un.cc: Removed.
* src/float/base/cl_F_underflow_exception.cc: New file.
* src/float/base/cl_F_err_ov.cc: Removed.
* src/float/base/cl_F_overflow_exception.cc: New file.
* src/float/cl_F.h (cl_error_floating_point_nan,
cl_error_floating_point_overflow, cl_error_floating_point_underflow):
Removed (see cln/float.h.)
* src/float/sfloat/cl_SF.h: Throw.
* src/float/sfloat/elem/cl_SF_div.cc: Throw.
* src/float/sfloat/elem/cl_SF_from_RA.cc: Throw.
* src/float/sfloat/elem/cl_SF_scale.cc: Throw.
* src/float/sfloat/elem/cl_SF_scale_I.cc: Throw.
* src/float/sfloat/misc/cl_SF_as.cc: Throw.
* src/float/ffloat/cl_FF.h: Throw.
* src/float/ffloat/conv/cl_FF_from_float.cc: Throw.
* src/float/ffloat/elem/cl_FF_div.cc: Throw.
* src/float/ffloat/elem/cl_FF_from_RA.cc: Throw.
* src/float/ffloat/elem/cl_FF_scale.cc: Throw.
* src/float/ffloat/elem/cl_FF_scale_I.cc: Throw.
* src/float/ffloat/misc/cl_FF_as.cc: Throw.
* src/float/dfloat/cl_DF.h: Throw.
* src/float/dfloat/conv/cl_DF_from_double.cc: Throw.
* src/float/dfloat/elem/cl_DF_div.cc: Throw.
* src/float/dfloat/elem/cl_DF_from_RA.cc: Throw.
* src/float/dfloat/elem/cl_DF_scale.cc: Throw.
* src/float/dfloat/elem/cl_DF_scale_I.cc: Throw.
* src/float/dfloat/misc/cl_DF_as.cc: Throw.
* src/float/lfloat/algebraic/cl_LF_sqrt.cc: Throw.
* src/float/lfloat/elem/cl_LF_1plus.cc: Throw.
* src/float/lfloat/elem/cl_LF_I_div.cc: Throw.
* src/float/lfloat/elem/cl_LF_I_mul.cc: Throw.
* src/float/lfloat/elem/cl_LF_div.cc: Throw.
* src/float/lfloat/elem/cl_LF_from_I.cc: Throw.
* src/float/lfloat/elem/cl_LF_mul.cc: Throw.
* src/float/lfloat/elem/cl_LF_scale.cc: Throw.
* src/float/lfloat/elem/cl_LF_scale_I.cc: Throw.
* src/float/lfloat/elem/cl_LF_square.cc: Throw.
* src/float/lfloat/misc/cl_LF_as.cc: Throw.
* src/float/lfloat/misc/cl_LF_shorten.cc: Throw.
* src/float/lfloat/misc/cl_LF_shortenrel.cc: Throw.
* src/float/lfloat/misc/cl_LF_shortenwith.cc: Throw.
* src/float/input/cl_F_read.cc: Throw.
* src/float/input/cl_F_read_stream.cc: Throw.
* src/float/misc/cl_F_as.cc: Throw.
* src/float/misc/cl_F_shortenrel.cc: Throw.
* src/float/transcendental/cl_LF_coshsinh_aux.cc: Throw.
* src/float/transcendental/cl_LF_cossin_aux.cc: Throw.
* src/float/transcendental/cl_LF_exp_aux.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_a.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_ab.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_b.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_p.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_pa.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_pab.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_pb.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_pq.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_pqa.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_pqab.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_pqb.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_q.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_qa.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_qab.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_qb.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_stream_pq.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_stream_pqa.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_stream_pqab.cc: Throw.
* src/float/transcendental/cl_LF_ratseries_stream_pqb.cc: Throw.
* src/float/transcendental/cl_LF_ratsumseries_pqcd_aux.cc: Throw.
* src/float/transcendental/cl_LF_ratsumseries_pqd.cc: Throw.
* src/float/transcendental/cl_LF_ratsumseries_pqd_aux.cc: Throw.
* src/float/transcendental/cl_LF_zeta_int.cc: Throw.
* src/real/elem/cl_R_div.cc: Throw.
* src/real/format-output/cl_fmt_cardinal.cc: Throw.
* src/real/format-output/cl_fmt_newroman.cc: Throw.
* src/real/format-output/cl_fmt_oldroman.cc: Throw.
* src/real/input/cl_R_read.cc: Throw.
* src/real/input/cl_R_read_stream.cc: Throw.
* src/real/misc/cl_R_as.cc: Throw.
* src/real/random/cl_R_random.cc: Throw.
* src/real/transcendental/cl_R_atan2.cc: Throw.
* src/real/transcendental/cl_R_log.cc: Throw.
* src/complex/input/cl_N_read.cc: Throw.
* src/complex/input/cl_N_read_stream.cc: Throw.
* src/complex/misc/cl_N_as.cc: Throw.
* src/complex/transcendental/cl_C_atanh_aux.cc: Throw.
* src/complex/transcendental/cl_C_expt_C.cc: Throw.
* src/complex/transcendental/cl_C_log.cc: Throw.
* src/complex/transcendental/cl_C_log2.cc: Throw.
* src/numtheory/cl_nt_cornacchia1.cc: Throw.
* src/numtheory/cl_nt_cornacchia4.cc: Throw.
* src/numtheory/cl_nt_isprobprime.cc: Throw.
* src/numtheory/cl_nt_jacobi.cc: Throw.
* src/numtheory/cl_nt_jacobi_low.cc: Throw.
* src/numtheory/cl_nt_sqrtmodp.cc: Throw.
* src/modinteger/cl_MI.cc: Throw.
* src/modinteger/cl_MI_int.h: Throw.
* src/modinteger/cl_MI_montgom.h: Throw.
* src/modinteger/cl_MI_pow2.h: Throw.
* src/modinteger/cl_MI_rshift.cc: Throw.
* src/modinteger/cl_MI_std.h: Throw.
* src/polynomial/elem/cl_UP_GF2.h: Throw.
* src/polynomial/elem/cl_UP_MI.h: Throw.
* src/polynomial/elem/cl_UP_gen.h: Throw.
* src/polynomial/elem/cl_UP_named.cc: Throw.
* src/polynomial/elem/cl_UP_no_ring.cc (uninitialized_error,
uninitialized_ring): Removed (see cln/ring.h.)
* src/polynomial/elem/cl_UP_number.h: Throw.
* src/polynomial/elem/cl_UP_unnamed.cc: Throw.
* src/vector/cl_GV_I.cc: Throw.
* src/vector/cl_GV_number.cc: Throw.
* tests/timediv2adic-compare.cc: Use default abort(), not cl_abort().
* tests/timeprint-compare.cc: Likewise.
* tests/timerecip2adic-compare.cc: Likewise.
* doc/cln.tex: Document the exception classes.
* examples/contfrac.cc: Use try/catch instead of setjmp/longjmp.
* INSTALL: undocument -fno-exceptions.
* README: Add exceptions to list of used C++ features.
18 years ago
Richard Kreckel
e528307482
Extend the exponent range from 32 bits to 64 bits on selected platforms.
* include/cln/number.h: Add signatures for operations with long long.
* include/cln/complex_class.h: Likewise.
* include/cln/real_class.h: Likewise.
* include/cln/real.h: Likewise.
* include/cln/rational_class.h: Likewise.
* include/cln/rational.h: Likewise.
* include/cln/integer_class.h: Likewise.
* include/cln/integer.h: Likewise.
* include/cln/float.h: Likewise.
* include/cln/lfloat.h: Likewise.
* include/cln/types.h (sintE and uintE): New types for exponents.
* include/cln/*float.h: Use the new types for exponents.
* include/cln/floatformat.h (float_format_t): Make underlying type
compatible with sintE.
* doc/cln.tex: Document changed float_exponent return value.
* src/float/cl_F.h: Likewise.
* src/float/ffloat/misc/cl_FF_exponent.cc: Likewise.
* src/float/input/cl_F_read.cc: Likewise.
* src/float/lfloat/cl_LF.h: Likewise.
* src/float/lfloat/cl_LF_impl.h: Likewise.
* src/float/lfloat/algebraic/cl_LF_sqrt.cc: Likewise.
* src/float/lfloat/elem/cl_LF_1plus.cc: Likewise.
* src/float/lfloat/elem/cl_LF_I_div.cc: Likewise.
* src/float/lfloat/elem/cl_LF_I_mul.cc: Likewise.
* src/float/lfloat/elem/cl_LF_compare.cc: Likewise.
* src/float/lfloat/elem/cl_LF_div.cc: Likewise.
* src/float/lfloat/elem/cl_LF_from_I.cc: Likewise.
* src/float/lfloat/elem/cl_LF_fround.cc: Likewise.
* src/float/lfloat/elem/cl_LF_ftrunc.cc: Likewise.
* src/float/lfloat/elem/cl_LF_futrunc.cc: Likewise.
* src/float/lfloat/elem/cl_LF_mul.cc: Likewise.
* src/float/lfloat/elem/cl_LF_scale.cc: Likewise.
* src/float/lfloat/elem/cl_LF_scale_I.cc: Likewise.
* src/float/lfloat/elem/cl_LF_square.cc: Likewise.
* src/float/lfloat/elem/cl_LF_to_I.cc: Likewise.
* src/float/lfloat/misc/cl_LF_decode.cc: Likewise.
* src/float/lfloat/misc/cl_LF_exponent.cc: Likewise.
* src/float/lfloat/misc/cl_LF_idecode.cc: Likewise.
* src/float/lfloat/misc/cl_LF_shortenrel.cc: Likewise.
* src/float/lfloat/misc/cl_LF_shortenwith.cc: Likewise.
* src/float/misc/cl_F_decode.cc: Likewise.
* src/float/misc/cl_F_exponent.cc: Likewise.
* src/float/misc/cl_F_shortenrel.cc: Likewise.
* src/float/misc/cl_float_format.cc: Likewise.
* src/float/output/cl_F_dprint.cc: Likewise.
* src/float/sfloat/misc/cl_SF_exponent.cc: Likewise.
* src/float/transcendental/cl_F_atanhx.cc: Likewise.
* src/float/transcendental/cl_F_atanx.cc: Likewise.
* src/float/transcendental/cl_F_cosh.cc: Likewise.
* src/float/transcendental/cl_F_expx.cc: Likewise.
* src/float/transcendental/cl_F_lnx.cc: Likewise.
* src/float/transcendental/cl_F_sinhx.cc: Likewise.
* src/float/transcendental/cl_F_sinx.cc: Likewise.
* src/float/transcendental/cl_LF_pi.cc: Likewise.
* src/integer/cl_I.h: Likewise.
* src/complex/algebraic/cl_LF_hypot.cc: Likewise.
* src/complex/elem/division/cl_C_LF_recip.cc: Likewise.
* src/float/dfloat/misc/cl_DF_exponent.cc: Likewise.
* src/integer/conv/cl_I_from_Q2.cc: Added.
* src/base/cl_low.h (isqrtC): New function, for 64 bit falls back to...
* src/base/low/cl_low_isqrt.cc (isqrt): ...this new implementation.
* src/base/cl_macros.h (bitc): Make sure 64 bit is used if required by
exponent operations.
* examples/pi.cc: Support more than 646456614 decimal digits.
19 years ago
Richard Kreckel
c84c6db5d5
2006-04-25 Bruno Haible <bruno@clisp.org>
Richard B. Kreckel <kreckel@ginac.de>
Make it theoretically possible to use bignums and long-floats with
more than 2^32 significant digits or bits.
* doc/cln.tex (logcount): Change return type to uintC.
(struct cl_byte): Change elements to uintC.
(integer_length, ord2, power2p): Change return type to uintC.
(scale_float): Change argument type to sintC.
(float_digits, float_precision): Change return type to uintC.
* examples/atan_recip.cc: Use uintC instead of uintL where appropriate.
* examples/atanh_recip.cc: Likewise.
* include/cln/GV.h: Likewise.
* include/cln/GV_complex.h: Likewise.
* include/cln/GV_integer.h: Likewise.
* include/cln/GV_modinteger.h: Likewise.
* include/cln/GV_number.h: Likewise.
* include/cln/GV_rational.h: Likewise.
* include/cln/GV_real.h: Likewise.
* include/cln/SV.h: Likewise.
* include/cln/SV_complex.h: Likewise.
* include/cln/SV_integer.h: Likewise.
* include/cln/SV_number.h: Likewise.
* include/cln/SV_rational.h: Likewise.
* include/cln/SV_real.h: Likewise.
* include/cln/SV_ringelt.h: Likewise.
* include/cln/dfloat.h: Likewise.
* include/cln/ffloat.h: Likewise.
* include/cln/float.h: Likewise.
* include/cln/integer.h: Likewise.
* include/cln/lfloat.h: Likewise.
* include/cln/modinteger.h: Likewise.
* include/cln/sfloat.h: Likewise.
* src/base/cl_low.h (integerlengthC): New macro.
* src/base/digitseq/cl_2DS_div.cc: Use uintC instead of uintL where
appropriate.
* src/base/digitseq/cl_2DS_recip.cc: Likewise.
* src/base/digitseq/cl_DS.h: Likewise.
* src/base/digitseq/cl_DS_mul.c: Likewise.
* src/base/digitseq/cl_DS_mul_fftc.h: Likewise.
* src/base/digitseq/cl_DS_mul_fftcs.h: Likewise.
* src/base/digitseq/cl_DS_mul_fftm.h: Likewise.
* src/base/digitseq/cl_DS_mul_fftp.h: Likewise.
* src/base/digitseq/cl_DS_mul_fftp3.h: Likewise.
* src/base/digitseq/cl_DS_mul_fftp3m.h: Likewise.
* src/base/digitseq/cl_DS_mul_fftr.h: Likewise.
* src/base/digitseq/cl_DS_mul_kara.h: Likewise.
* src/base/digitseq/cl_DS_mul_nuss.h: Likewise.
* src/base/digitseq/cl_DS_recip.cc: Likewise.
* src/base/digitseq/cl_DS_recipsqrt.cc: Likewise.
* src/base/digitseq/cl_DS_sqrt.cc: Likewise.
* src/base/digitseq/cl_DS_trandom.cc: Likewise.
* src/complex/input/cl_N_read.cc: Likewise.
* src/complex/transcendental/cl_C_asinh_aux.cc: Likewise.
* src/complex/transcendental/cl_C_expt_C.cc: Likewise.
* src/float/cl_F.h: Likewise.
* src/float/conv/cl_F_from_F_f.cc: Likewise.
* src/float/conv/cl_F_from_I_f.cc: Likewise.
* src/float/conv/cl_F_from_RA_f.cc: Likewise.
* src/float/dfloat/conv/cl_I_to_double.cc: Likewise.
* src/float/dfloat/conv/cl_RA_to_double.cc: Likewise.
* src/float/dfloat/elem/cl_DF_from_I.cc: Likewise.
* src/float/dfloat/elem/cl_DF_from_RA.cc: Likewise.
* src/float/dfloat/elem/cl_DF_scale.cc: Likewise.
* src/float/dfloat/misc/cl_DF_digits.cc: Likewise.
* src/float/dfloat/misc/cl_DF_precision.cc: Likewise.
* src/float/elem/cl_F_scale.cc: Likewise.
* src/float/ffloat/conv/cl_I_to_float.cc: Likewise.
* src/float/ffloat/conv/cl_RA_to_float.cc: Likewise.
* src/float/ffloat/elem/cl_FF_from_I.cc: Likewise.
* src/float/ffloat/elem/cl_FF_from_RA.cc: Likewise.
* src/float/ffloat/elem/cl_FF_scale.cc: Likewise.
* src/float/ffloat/misc/cl_FF_digits.cc: Likewise.
* src/float/ffloat/misc/cl_FF_precision.cc: Likewise.
* src/float/input/cl_F_read.cc: Likewise.
* src/float/lfloat/algebraic/cl_LF_sqrt.cc: Likewise.
* src/float/lfloat/elem/cl_LF_1plus.cc: Likewise.
* src/float/lfloat/elem/cl_LF_I_div.cc: Likewise.
* src/float/lfloat/elem/cl_LF_I_mul.cc: Likewise.
* src/float/lfloat/elem/cl_LF_div.cc: Likewise.
* src/float/lfloat/elem/cl_LF_from_I.cc: Likewise.
* src/float/lfloat/elem/cl_LF_from_RA.cc: Likewise.
* src/float/lfloat/elem/cl_LF_fround.cc: Likewise.
* src/float/lfloat/elem/cl_LF_ftrunc.cc: Likewise.
* src/float/lfloat/elem/cl_LF_futrunc.cc: Likewise.
* src/float/lfloat/elem/cl_LF_scale.cc: Likewise.
* src/float/lfloat/elem/cl_LF_to_I.cc: Likewise.
* src/float/lfloat/misc/cl_LF_digits.cc: Likewise.
* src/float/lfloat/misc/cl_LF_idecode.cc: Likewise.
* src/float/lfloat/misc/cl_LF_leninc.cc: Likewise.
* src/float/lfloat/misc/cl_LF_lenincx.cc: Likewise.
* src/float/lfloat/misc/cl_LF_precision.cc: Likewise.
* src/float/lfloat/misc/cl_LF_shortenrel.cc: Likewise.
* src/float/lfloat/misc/cl_LF_shortenwith.cc: Likewise.
* src/float/misc/cl_F_digits.cc: Likewise.
* src/float/misc/cl_F_epsneg.cc: Likewise.
* src/float/misc/cl_F_epspos.cc: Likewise.
* src/float/misc/cl_F_leastneg.cc: Likewise.
* src/float/misc/cl_F_leastpos.cc: Likewise.
* src/float/misc/cl_F_mostneg.cc: Likewise.
* src/float/misc/cl_F_mostpos.cc: Likewise.
* src/float/misc/cl_F_precision.cc: Likewise.
* src/float/misc/cl_F_rational.cc: Likewise.
* src/float/misc/cl_F_shortenrel.cc: Likewise.
* src/float/output/cl_F_dprint.cc: Likewise.
* src/float/random/cl_F_random.cc: Likewise.
* src/float/sfloat/elem/cl_SF_from_I.cc: Likewise.
* src/float/sfloat/elem/cl_SF_from_RA.cc: Likewise.
* src/float/sfloat/elem/cl_SF_scale.cc: Likewise.
* src/float/sfloat/misc/cl_SF_digits.cc: Likewise.
* src/float/sfloat/misc/cl_SF_precision.cc: Likewise.
* src/float/transcendental/cl_F_atanhx.cc: Likewise.
* src/float/transcendental/cl_F_atanx.cc: Likewise.
* src/float/transcendental/cl_F_catalanconst_f.cc: Likewise.
* src/float/transcendental/cl_F_cos.cc: Likewise.
* src/float/transcendental/cl_F_cosh.cc: Likewise.
* src/float/transcendental/cl_F_coshsinh.cc: Likewise.
* src/float/transcendental/cl_F_cossin.cc: Likewise.
* src/float/transcendental/cl_F_eulerconst_f.cc: Likewise.
* src/float/transcendental/cl_F_exp1_f.cc: Likewise.
* src/float/transcendental/cl_F_expx.cc: Likewise.
* src/float/transcendental/cl_F_ln10_f.cc: Likewise.
* src/float/transcendental/cl_F_ln2_f.cc: Likewise.
* src/float/transcendental/cl_F_lnx.cc: Likewise.
* src/float/transcendental/cl_F_pi_f.cc: Likewise.
* src/float/transcendental/cl_F_sin.cc: Likewise.
* src/float/transcendental/cl_F_sinh.cc: Likewise.
* src/float/transcendental/cl_F_sinhx.cc: Likewise.
* src/float/transcendental/cl_F_sinx.cc: Likewise.
* src/float/transcendental/cl_F_tran.h: Likewise.
* src/float/transcendental/cl_F_zeta_int_f.cc: Likewise.
* src/float/transcendental/cl_LF_atan_recip.cc: Likewise.
* src/float/transcendental/cl_LF_atanh_recip.cc: Likewise.
* src/float/transcendental/cl_LF_catalanconst.cc: Likewise.
* src/float/transcendental/cl_LF_coshsinh_aux.cc: Likewise.
* src/float/transcendental/cl_LF_cossin_aux.cc: Likewise.
* src/float/transcendental/cl_LF_eulerconst.cc: Likewise.
* src/float/transcendental/cl_LF_exp1.cc: Likewise.
* src/float/transcendental/cl_LF_exp_aux.cc: Likewise.
* src/float/transcendental/cl_LF_pi.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_a.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_ab.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_b.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_p.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_pa.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_pab.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_pb.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_pq.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_pqa.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_pqab.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_pqb.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_q.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_qa.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_qab.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_qb.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_stream_pq.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_stream_pqa.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_stream_pqab.cc: Likewise.
* src/float/transcendental/cl_LF_ratseries_stream_pqb.cc: Likewise.
* src/float/transcendental/cl_LF_ratsumseries_pqcd.cc: Likewise.
* src/float/transcendental/cl_LF_ratsumseries_pqcd_aux.cc: Likewise.
* src/float/transcendental/cl_LF_ratsumseries_pqd.cc: Likewise.
* src/float/transcendental/cl_LF_ratsumseries_pqd_aux.cc: Likewise.
* src/float/transcendental/cl_LF_tran.h: Likewise.
* src/float/transcendental/cl_LF_zeta3.cc: Likewise.
* src/float/transcendental/cl_LF_zeta_int.cc: Likewise.
* src/integer/algebraic/cl_I_rootp_I.cc: Likewise.
* src/integer/algebraic/cl_I_rootp_aux.cc: Likewise.
* src/integer/bitwise/cl_I_ash.cc: Likewise.
* src/integer/bitwise/cl_I_ash_I.cc: Likewise.
* src/integer/bitwise/cl_I_byte.h: Likewise.
* src/integer/bitwise/cl_I_fullbyte.cc: Likewise.
* src/integer/bitwise/cl_I_ilength.cc: Likewise.
* src/integer/bitwise/cl_I_ldb.cc: Likewise.
* src/integer/bitwise/cl_I_ldbtest.cc: Likewise.
* src/integer/bitwise/cl_I_ldbx.cc: Likewise.
* src/integer/bitwise/cl_I_ldbxtest.cc: Likewise.
* src/integer/bitwise/cl_I_logbitp.cc: Likewise.
* src/integer/bitwise/cl_I_logbitp_I.cc: Likewise.
* src/integer/bitwise/cl_I_logcount.cc: Likewise.
* src/integer/bitwise/cl_I_mkf.cc: Likewise.
* src/integer/bitwise/cl_I_mkfx.cc: Likewise.
* src/integer/cl_I.h: Likewise.
* src/integer/conv/cl_I_to_digits.cc: Likewise.
* src/integer/conv/cl_I_digits_need.cc: Likewise.
* src/integer/conv/cl_I_from_digits.cc: Likewise.
* src/integer/gcd/cl_I_gcd.cc: Likewise.
* src/integer/gcd/cl_I_xgcd.cc: Likewise.
* src/integer/misc/cl_I_eqhashcode.cc: Likewise.
* src/integer/misc/cl_I_ord2.cc: Likewise.
* src/integer/misc/cl_I_power2p.cc: Likewise.
* src/integer/output/cl_I_cached_power.h (cached_power_table): allow
for 40 elements.
* src/integer/output/cl_I_decstring.cc: Use uintC instead of uintL
where appropriate.
* src/integer/output/cl_I_print.cc: Likewise.
* src/integer/output/cl_I_print_string.cc: Likewise.
* src/modinteger/cl_MI.cc: Likewise.
* src/modinteger/cl_MI_lshift.cc: Likewise.
* src/modinteger/cl_MI_montgom.h: Likewise.
* src/modinteger/cl_MI_pow2.h: Likewise.
* src/modinteger/cl_MI_pow2m1.h: Likewise.
* src/modinteger/cl_MI_pow2p1.h: Likewise.
* src/modinteger/cl_MI_rshift.cc: Likewise.
* src/modinteger/cl_MI_std.h: Likewise.
* src/numtheory/cl_IF_millerrabin.cc: Likewise.
* src/numtheory/cl_nt_isprobprime.cc: Likewise.
* src/numtheory/cl_nt_sqrtmodp.cc: Likewise.
* src/polynomial/elem/cl_UP_GF2.h: Likewise.
* src/real/conv/cl_F_from_R_f.cc: Likewise.
* src/real/format-output/cl_fmt_floatstring.cc: Likewise.
* src/real/input/cl_R_read.cc: Likewise.
* src/vector/cl_GV_I.cc: Likewise.
* src/vector/cl_GV_I_copy.cc: Likewise.
* src/vector/cl_GV_number.cc: Likewise.
* src/vector/cl_GV_number_copy.cc: Likewise.
* src/vector/cl_SV_copy.cc: Likewise.
* src/vector/cl_SV_number.cc: Likewise.
* src/vector/cl_SV_ringelt.cc: Likewise.
* tests/main.cc: Likewise.
* tests/test_I_ilength.cc: Likewise.
* tests/test_I_ord2.cc: Likewise.
20 years ago
Richard Kreckel
6fdd87f5e7
* Cumulative patch including Bruno's work on large fixnums on 64 bit machines.
20 years ago
Richard Kreckel
515cd347c4
* src/integer/conv/cl_I_cached_power.h: New file.
* src/integer/conv/cl_I_cached_power.cc: New file.
Contains power_table and cached_power_table previously...
* src/integer/conv/cl_I_to_digits.cc: ...here.
* src/integer/conv/cl_I_from_digits.cc: Use cached powers.
20 years ago
Richard Kreckel
3480230ed3
* src/integer/conv/cl_I_from_digits.cc: Made input of all numbers in
non-power-of-two base much faster.
* tests/test_I_io.cc: New file...
* tests/Makefile.in, tests/test_I.cc: ...used here.
20 years ago
Richard Kreckel
b7c242198f
* Make power_table more readable.
20 years ago
Bruno Haible
1e7aede9bd
Avoid shifting a 32-bit zero value by more than 31 bits.
20 years ago
Richard Kreckel
7792c43d12
* src/integer/input/cl_I_read_stream.cc (read_integer): Fix a bug
that caused radix specifiers to not work when reading from a stream.
* src/rational/input/cl_RA_read_stream.cc (read_rational): Likewise.
* src/real/input/cl_R_read_stream.cc (read_real): Likewise.
* src/float/input/cl_F_read_stream.cc (read_float): Likewise.
* src/complex/input/cl_N_read_stream.cc (read_complex): Likewise.
21 years ago
Richard Kreckel
b31a3a904d
* src/integer/conv/cl_I_from_digits.cc (digits_to_I): Fix thinko in
new code for base power of two.
21 years ago
Richard Kreckel
abe559d7d8
* src/integer/conv/cl_I_to_digits (I_to_digits): Fix an elusive stack
overwriting problem. That was the real cause for Debian bug#246319.
* src/integer/output/cl_I_print.cc (print_integer): Revert workaround
for the bug fixed above.
21 years ago
Richard Kreckel
ac82f8ef8b
* src/integer/conv/cl_I_from_digits.cc (digits_to_I): Speedup when
the base is a power of two.
21 years ago
Richard Kreckel
8548d5d0a5
* src/integer/conv/cl_I_to_digits.cc (I_to_digits): Fix bug in base 32.
21 years ago
Richard Kreckel
541905ab43
* Remove unused labels.
21 years ago
Richard Kreckel
f2f5fb349d
* Make template specializations explicit.
21 years ago
Richard Kreckel
a8369235e2
* Change all C include headers to ISO style within C++ code.
21 years ago
Richard Kreckel
852b7a29c4
* src/integer/output/cl_I_print.cc (print_integer): workaround
GCC compiler bug (cf. Debian bug#246319).
22 years ago
Richard Kreckel
f3b29e52ea
* */*: cl_istream -> std::istream, cl_ostream -> std::ostream.
25 years ago
Richard Kreckel
f57f23a99a
* */*: Removed problematic stdin, stdout and stderr definitions.
Use std::cin, std::cout, std::cerr instead (obsoletes 2000-10-29).
25 years ago
Richard Kreckel
795eaad118
* src/base/digitseq/cl_asm.h: Test if (intDsize==32) for MIPS and HPPA,
in order to guard against an accidented configuration.
* src/integer/conv/cl_I_to_digits.cc (table): member b_hoch_k of
struct power_table_entry initialized as ULL instead of as UL, if
intDsize==64 (caused misprinting on MIPS w/ GMP).
* src/base/cl_macros.h (minus_bitm, bitc): implemented ULL, if
HAVE_FAST_LONGLONG.
* src/integer/bitwise/cl_I_mkfx.cc (mkf_extract): Likewise.
* src/integer/conv/cl_I_from_L.cc (cl_I_from_L): Added trival
generation of Bignum for intDsize==64 and a notreached-check at end.
* autoconf/config.guess, autoconf/config.sub: updated from FSF.
* include/cln/config.h.in: Prepared support for IA64.
* include/cln/types.h: Likewise.
* include/cln/object.h: Likewise.
* include/cln/modules.h: Likewise.
* src/base/cl_macros.h (nonreturning_function): Likewise (NUE's
compiler claims __GNUC_MINOR__==9).
* src/base/cl_macros.h (bit, minus_bit): changed criterion for ULL from
HAVE_DD to HAVE_FAST_LONGLONG.
* src/base/cl_macros.h (bitm): implemented ULL, if HAVE_FAST_LONGLONG.
* src/base/cl_low.h: actually no need to include "cln/types.h" here.
* src/base/cl_low.h (logcount_64): always ULL, independent of HAVE_DD.
* src/base/random/cl_UL_random.cc (random32): a is always ULL.
25 years ago
Richard Kreckel
2f48af8059
* include/cln/object.h (cl_combine): define additional signatures, if
HAVE_LONGLONG is defined, in order to keep the compiler happy.
* src/base/cl_macros.h: include "cln/types.h", since we need HAVE_DD...
* src/base/cl_macros.h (bit): ...for this macro...
* src/base/cl_macros.h (minus_bit): ...and this one.
* src/base/cl_low.h: include "cln/types.h", since we need HAVE_DD...
* src/base/cl_low.h (logcount_64): ...for this macro.
* src/base/random/cl_UL_random.cc (random32): if HAVE_DD a is an ULL.
* src/integer/gcd/cl_I_gcd_aux2.cc (floorDD): fixed algorithmic bug
that turned up when intDsize==32 and cl_word_size==64.
* src/float/dfloat/elem/cl_DF_div.cc (operator/): fixed a missing cast
to uint64 that turned up when intDsize==32 and cl_word_size==64.
25 years ago
Richard Kreckel
f24a1dab87
* include/cln/number.h (As): Fix it in namespace by suffixing `_As'
to the appropiate method instead of prefixing `as_'.
* src/complex/misc/cl_N_as.cc (cl_N_As): Likewise.
* src/real/misc/cl_R_as.cc (cl_R_As): Likewise.
* src/rational/misc/cl_RA_as.cc (cl_RA_As): Likewise.
* src/integer/misc/cl_I_as.cc (cl_I_As): Likewise.
* src/float/misc/cl_F_as.cc (cl_F_As): Likewise.
* src/float/sfloat/misc/cl_SF_as.cc (cl_SF_As): Likewise.
* src/float/lfloat/misc/cl_LF_as.cc (cl_LF_As): Likewise.
* src/float/ffloat/misc/cl_FF_as.cc (cl_FF_As): Likewise.
* src/float/dfloat/misc/cl_DF_as.cc (cl_DF_As): Likewise.
25 years ago
Richard Kreckel
850abfde7f
* All Files have been modified for inclusion of namespace cln;
I am too lazy for a detailed discussion of all the changes.
Many identifiers got their `cl_' stripped off. Ok, this is a
clumpsy CVS log-entry. Promise: more will soon go into the
file ChangeLog. I apologize for the inconvenience. :-(
25 years ago
Bruno Haible
53cf241b08
Accept floats with 1.2L0_100 syntax when reading from streams, not only when
reading from strings.
25 years ago
Bruno Haible
9c6ab33803
Distinguish between cl_word_size and the ABI's pointer size.
25 years ago
Richard Kreckel
e9aeaa2404
* Removed internal gmp/ directory and other traces of it like $GMP_INCLUDES.
26 years ago
Richard Kreckel
dd9e0f894e
Initial revision
26 years ago